首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.txt”,其内容采用如下格式组织: 【原文】 1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改
admin
2019-08-30
75
问题
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语一网络版.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全国计算机二级
相关试题推荐
查询设计器中的“筛选”选项卡的作用是
在查询设计器环境中,“查询”菜单下的“查询去向”命令指定了查询结果的输出去向,输出去向不包括
对两个数据表建立临时联系时,要求()。
以下题目使用的数据表结果如下:图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(
下面是关于表单数据环境的叙述,其中错误的是()。
打开表单文件sapp,并完成如下操作(不得有多余操作):①将“课程”表添加到表单的数据环境中。②使列表框Listl中的数据项为“课程"表中的课程名(课程,课程名)。③单击列表框中的数据项时,统计选修了所选课程的学生人数(从“考试成绩”表),并将结果存
在考生文件夹下有一表单文件formone.scx,其中包含一个文本框和一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:(1)将文本框和命令按钮两个控件设置为顶边对齐。(2)将文本框的默认值设置为0。(3)将表
(1)打开程序文件cylinder.prg,请按要求修改程序并运行程序。(2)以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前3名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表newcoun.db
(1)编写程序three.prg完成下列操作:根据“外汇汇率”表中的数据产生rate表中的数据。要求:将所有“外汇汇率”表中的数据插入rate表中并且顺序不变,由于“外汇汇率”中的“币种1”和“币种2”存放的是外币名称,而rate表中的“币种1代码”和“
随机试题
陶行知生活教育思想包括三个有机联系的部分:生活即教育,社会即学校,_________。
A.寒积便秘B.肠燥便秘C.阳虚便秘D.热积便秘E.胃肠积滞火麻仁长于治疗
医务人员泄漏医疗秘密将会产生不良后果的叙述不正确的是( )
关于主体结构混凝土工程施工缝留置位置说法正确的有()
根据《企业所得税法》的规定,下列项目中,属于不征税收入的有()。
甘于奉献这一人民警察职业道德规范的要求包括()。①埋头苦干②顾全大局③献身使命④任劳任怨
广告花费最高的是()1999年护肤品和电脑产品的广告花费共为()元
供给侧管理和需求侧管理是调控宏观经济的两个基本手段。下列关于供给侧管理的说法,正确的是
以下叙述中错误的是
假设图书表中有一个时间字段,查找2006年出版的图书的准则是()。
最新回复
(
0
)