首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
admin
2019-08-30
55
问题
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织:
【原文】
1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改于父之道(4),可谓孝矣。”
【注释】
(略)
【译文】
(略)
【评析】
(略)
该版本通过【原文】标记《论语》原文内容,采用【注释】、【译文】和【评析】标记对原文的注释、译文和评析。
问题1:请编写程序,提取《论语》文档中所有原文内容,输出保存到“论语一提取版.txt”文件。输出文件格式要求:去掉文章中原文部分每行行首空格及如“1.11”等的数字标志,行尾无空格、无空行。参考格式如下(原文中括号及内部数字是对应源文件中注释项的标记:
子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”
有子(1)曰:“其为人也孝弟(2),而好犯上者(3),鲜(4)矣;不好犯上,而好作乱者,未之有也(5)。君子务本(6),本立而道生(7)。孝弟也者,其为人之本与(8)?”
子曰:“巧言令色(1),鲜(2)仁矣。”
(略)
问题2:请编写程序,在“论语-提取版.txt”基础上,进一步去掉每行文字中所有括号及其内部数字,保存为“论文一原文.txt”文件。参考格式如下:
子曰:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?”有子曰:“其为人也孝弟,而好犯上者,鲜矣;不好犯上,而好作乱者,未之有也。君子务本,本立而道生。孝弟也者,其为人之本与?”
子曰:巧言令色,鲜仁矣。”
(略)
选项
答案
问题1答案如下: fi=open(’’论语一网络版.txt’’,’’r’’,encoding=’’uff-8’’) fo=open(’’论语一提取版,txt’’,’’w’’) wflag=False #写标记 for line in fi: if’’【’’in line: #遇到【时,说明已经到了新的区域,写标记置否 wflag=False if’’【原文】’’ in line: #遇到【原文】时,设置写标记为True wflag=True continue if wflag==True: #根据写标记将当前行内容写入新的文件 for i in range(0,25): for j in range(0,25): line=line.replace(’’{}.{}’’.format(i,j),’’**’’) for i in range(0,10): line=line.replace(’’*{}.format(i),’’’’) for i in range(0,10): line=line.replace(’’{},*’’.format(i),’’’’) line=line.replace(’’.’’,’’’’) fo.write(line) fi.close() fo.close() 问题2答案如下: fi=open(’’论语一提取版.txt’’,’’r’’) fo=open(’’论语一原文.txt’’,’’w’’) for line in fi: for i in range(1,23): line=line.replace(’’({})’’.format(i),’’’’) fo.write(line) fi.close() fo.close()
解析
这是一个综合应用题,考核对规则文本文件的处理能力。
问题1:从网络下载的“论语一网络版.txt”中粗略提取原文,形成“论语一提取版.cxt”。读写文件分别采用open()函数的’’r’’和’’w’’模式。
在读人文件时,可以增加参数encoding=’’utf-8’’,指定程序采用utf-8编码打开文件。文件编码过于复杂,在等级考试中并未涉及,这里,建议对编码的理解使用如下两条规则:第一,如果一个文本文件从网络获得,增加encoding参数,指定编码方式打开;第二,如果Python程序生成了一个文件,并再次打开,则不需要指定encoding参数。
问题1提取【原文】后面区域的内容,与单行提取不同,区域提取文本需要处理若干行,为此,可以考虑建立一个写标记,即wflag参数。
当遇到“【原文】”字样时,将wflag标记设为True,后续读入该区域其他行时,按照【原文】对应区域块的文本进行处理。当遇到其他【注释】、【译文】和【评析】等标记时,则将wflag设为False,表示程序已经离开了【原文】区域。维护上述标记,可以将【原文】或其他标志出现作为条件,维护wflag变量值。进一步,根据wflag变量值,确定是否将文本内容输出到新的文件中。
问题1参考代码如下,代码中增加注释用于说明。
fi=open(’’论语一网络版.txt’’,’’r’’,encoding=’’utf-8’’)
fo=open(’’论语一提取版.txt’’,’’w’’)
wflag=False #写标记
for line in fi:
if’’【’’in line: #遇到【时,说明已经到了新的区域,写标记置否
wflag=False
if’’【原文】’’in line: #遇到【原文】时,设置写标记为True
wflag=True
continue
if wflag==True: #根据写标记将当前行内容写入新的文件
for i in range(0,25):
for j in range(0,25):
line=line.replace(’’{}.{}’’.format(i,j),’’**’’)
for i in range(0,10):
line=line.replace(’’*{}’’.format(i),’’’’)
for i in range(0,10):
line=line.replace(’’{}*’’.format(i),’’’’)
line=line.replace(’’*’’,’’’’)
fo.write(1ine)
fi.close()
fo.closef)
问题2在问题1基础上,进一步对提取后原文的内容进行清理,去掉其中出现的“(数字)”这种形式。问题1提取后的文件片段和对应问题2的清理目标如下。
子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”
子曰:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?”对问题1提取后的文件分析可知,其中出现“(1)”到“(22)”共22种可能的字符串。
一个简单思路是逐一替换上述出现的字符串为空字符串,这种替换相当于删除上述字符串。这可以采用.replace()函数进行。问题2的参考代码及关键代码注释如下。
fi=open(’’论语一提取版.txt’’,’’r’’)
fo=open(’’论语一原文.txt’’,’’w’’)
for line in fi: #逐行遍历
for i in range(1,23):#产生1到22数字
line=line.replace(’’({})”.format(i),’’’’)#构造(i)并替换
fo.write(line)
fi.close()
fo.close()
转载请注明原文地址:https://kaotiyun.com/show/iW6p777K
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
在VisualFoxPro中,下列描述正确的是
在VisualFoxPro中,以下关于查询的描述正确的是
第(36)~(40)使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单名细(订单号,序号,产品号,数量)假设客户表中有客户号(关键字)C1~C10共10条客
第(36)~(40)使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单名细(订单号,序号,产品号,数量)查询单价在600元以上的主机板和硬盘的正确命令是(
以下题目使用的数据表结果如下:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(
如果在命令窗口执行命令:LIST名称,主窗口中显示:记录行名称1电视机2计算机3电扇线4电脑连线5电话线假定名称字段为字符型,宽度为8,那么
以下题目使用如下三个表:部门.dbfi部门号C(8),部门名C(12),负责人C(6)职工.dbf.部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日.期D(8)工资.dbf:职工号C(10),基本工资N(8.2),津贴N(8.2)
若将过程放在过程文件中,可在应用程序中使用下列哪条命令打开过程文件()。
以下函数返回结果为数值型的是()。
打开表单文件sapp,并完成如下操作(不得有多余操作):①将“课程”表添加到表单的数据环境中。②使列表框Listl中的数据项为“课程"表中的课程名(课程,课程名)。③单击列表框中的数据项时,统计选修了所选课程的学生人数(从“考试成绩”表),并将结果存
随机试题
在刑事诉讼中,公安机关负责对刑事案件的预审。()
下列关于营运能力的说法中正确的有
女性,45岁。牙周反复肿痛来诊,初诊为:慢性牙周炎。X线片显示:环绕牙根的白色阻射线消失。这表明哪种组织有破坏
患者女,13岁,正在进行正畸治疗,医生建议她使用氟化凝胶防龋每次使用的药量应小于
善于治疗脾胃病证的腧穴是
下列不属于中医诊断学主要内容的是
关于板式橡胶支座抗剪弹性模量的试验检测,请回答下列问题。若某支座3次加载测得的综合抗剪弹性模量分别为1.03MPa、1.04MPa、1.08MPa,则该板式橡胶支座的综合抗剪弹性模量应取()。
混凝土构件的主要力学性能包括()等。
晕车是游客在旅行中的常见病,可以让游客上车后口服晕车药。()
Forthousandsofyears,nomads,conquerors,traders,andpilgrimshave(i)______theregion,contributingtoitsmulticulturalhe
最新回复
(
0
)