首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
admin
2019-08-30
60
问题
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.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全国计算机二级
相关试题推荐
假设数据库已经打开,要打开其中的视图myview,可使用命令:
在VisualFoxPro中,下列描述正确的是
在使用查询设计器创建查询时,为了指定在查询结果中是否包含重复记录(对应手DISTINCT),应该使用的选项卡是
在VisualFoxpro中,下面对查询设计器的描述中正确的是
在VisualFoxPro中,查询设计器和视图设计器很像,如下描述正确的是
第(36)~(40)使用如下关系:客户(客户号,名称,联系人,邮政编码,电话号码)产品(产品号,名称,规格说明,单价)订购单(订单号,客户号,订购日期)订购单名细(订单号,序号,产品号,数量)查询客户名称中有“网络”二字的客户信息的正确命令是(
数据库系统的核心是()。
以下题目使用的数据表结果如下:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(
(1)使用一对多表单向导新建一个表单sportform。要求:使用“国家”为父表并选择“国家名称”字段作为显示字段,“获奖牌情况”为子表并选择“项目名称”和“名次”字段作为显示字段,使用“国家代码”建立表之间的关系,表单样式选择“阴影式”,按钮类型选择“
(1)student是一个“学生”表,其中包含学号(C8)、姓名(C8)、性别(C2)、政治面目(C4)、班级(C5)等字段。考生文件夹下的modil.prg程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的
随机试题
泄泻气阴两伤变证证见( )。泄泻阴竭阳脱变证证见( )。
下列哪项条件可给予试产机会()
双氯芬酸钠的主要代谢途径为可待因的-种代谢途径为
属于兴奋剂目录和医疗用毒性药品目录所列品种,并且药品零售企业一定可以经营的是
对于不同的承包合同计价形式,工程招标时对设计深度要求也不一样,成本加酬金合同()进行招标。
已经达到预定可使用状态但是尚未办理竣工决算的固定资产,应该()。
下列关于单位内部会计监督的提法中,正确的有()。
楼下住着一个孤寡老人。楼上住着领导和小孩。领导家的小孩吵到老人了,老人向你诉苦。你要怎么处理这个情况?
中国共产党在领导中国人民进行新民主主义革命过程中,开辟的第一个农村革命根据地是()。
目前在火电领域诞生的新技术很多,联合循环技术就是其中之一。简单来说,联合循环技术就是“一气两用”;将燃气轮机排出的高温废气,通过余热锅炉回收转换为蒸汽,进入蒸汽轮机后驱动其运转,两台轮机都将动能输送至发电机进行发电;废气再次进入锅炉,进一步将其中蕴含的热能
最新回复
(
0
)