当前位置: > 财经>正文

提取TXT文本中指定内容 信托包含的三个特定内容是

2023-08-19 18:09:10 互联网 未知 财经

提取TXT文本中指定内容

项目介绍:

在PYTHON的计算机二级考试中有这么一个题,要求我们从一个文本中按照特定的格式提取指定内容。 文件名称为“论语-网络版.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”文件。参考格式如下:

子曰:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?”有子曰:“其为人也孝弟,而好犯上者,鲜矣;不好犯上,而好作乱者,未之有也。君子务本,本立而道生。孝弟也者,其为人之本与?”子曰:巧言令色,鲜仁矣。”(略)

实现程序如下(python):

fi = open("论语-网络版","r",encoding="utf-8")fo = open("论语-提取版.txt","w",encoding="utf-8")wflag =False #写标记newline = [] #创建一个新的列表for line in fi : #按行读入文件,此时line的type是str if "【" in line: #重置写标记 wflag =False if "【原文】" in line: #检验是否到了要写入的内容 wflag = True continue if wflag == True: K = list(line) if len(K)>1: #去除文本中的空行 for i in K : #写入需要内容 newline.append(i)strlist = "".join(newline) #合并列表元素newlines = str(strlist) #list转化成strfor D in range(1,100): #删掉句中() newlines = newlines.replace("({})".format(D),"")for P in range(0,9): #删掉前面数值标题 for O in range(0,9): for U in range(0, 9): newlines = newlines.replace("{}.{}{}".format(P,O,U), "")fo.write(newlines)fo.close()fi.close()

运行结果如下:

其给的参考答案如下(分为两个程序):

fi = open("论语-网络版","r",encoding="utf-8")fo = open("论语-提取版.txt","w",encoding="utf-8")wflag = False #写标记for line in fi: if "【" in line : #遇到【时,说明已经到了新的区域,写标记置否 wflag = False if "【原文】" in line: #遇到【原文】时,设置写标记为Ture 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() fi = open("论语-提取版.txt","r")fo = open("论语-原文","w")for line in fi: for i in range(1,23): line = line.replace("({})".format(i),"") fo.write(line)fi.close()fo.close()

其运行结果如下:

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。