首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
admin
2019-08-30
47
问题
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.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://jikaoti.com/ti/jI50FFFM
本试题收录于:
二级Python题库NCRE全国计算机二级分类
0
二级Python
NCRE全国计算机二级
相关试题推荐
在VisualFoxpro中,下面对查询设计器的描述中正确的是
在VisualFoxPro中,查询设计器和视图设计器很像,如下描述正确的是
下面关于算法的叙述中,正确的是()。
在下面的表达式中,运算结果为逻辑真的是()。
在VisualFoxPro的工作1区和3区打开了数据表文件,再接着执行SELECT0后,选择工作区的结果是()。
如果在命令窗口执行命令:LIST名称,主窗口中显示:记录行名称1电视机2计算机3电扇线4电脑连线5电话线假定名称字段为字符型,宽度为8,那么
下列程序段的输出结果是()。Clearstore10toastore20tobsetudfparmstoreferencedoswapwitha,(b)?a.b
要设置日期时间型数据中的年份用4位数字显示,应使用下列哪条命令()。
(1)student是一个“学生”表,其中包含学号(C8)、姓名(C8)、性别(C2)、政治面目(C4)、班级(C5)等字段。考生文件夹下的modil.prg程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的
建立一个文件名和表单名均为myform的表单文件,表单上有:表格控件gridl(RecordSourceType属性手工设置为“别名”),文本框控件Textl,命令按钮控件Commandl(文本为“确定”)。程序运行时在文本框中输入“部门名”,然后单击“确
随机试题
法和道德规范、宗教规范、纪律规范等社会规范的主要区别在于
A.肛门周围脓肿B.直肠息肉C.肛裂D.血栓性外痔E.肛管癌便后滴血、剧痛()
出版者依著作权法取得其使用权的,不得侵犯作者的()
下列事项只能制定法律的是()。
常用水泥的主要检验项目为()
关于投资者要求的投资报酬率,下列说法中A的有()。
物流标准是建立在一般标准化基础之上的专业标准化系统,除国家规定的统一计量标准外,物流系统还要有自身独特的______计量标准。
简述集中采购与分散采购的适用条件及范围。
()国家教委正式颁布的《幼儿园工作规程》中规定:“幼儿园是对3周岁以上学龄前幼儿实施保育和教育的机构。”
Toomuchelectriccurrentmayflowintoacircuitasaresulteitherofafaultinthecircuitandofanoutsideeventsuchasl
最新回复
(
0
)