python网络版_Python二级考试-综合应用题(对网络版的《论语》txt文件进行提纯)
网络版《论语》内容比较齐全,包含了原文内容和注释内容,而原文内容又包含了序号符号!这是一题比较简单的应用题,只涉及到TXT文件的读写!解决思路也比较清晰明了。题目:原文件如下图所示:问题1:分析问题:题目要求就是对“论语.txt”文件进行提纯,把空格,“【原文】”和“【注释】”以及注释内容去掉,并写入新的文件“论语-原文.txt”。注意:收尾空格要去掉。解决思路:1,用open函数打开源文件,并用
网络版《论语》内容比较齐全,包含了原文内容和注释内容,而原文内容又包含了序号符号!这是一题比较简单的应用题,只涉及到TXT文件的读写!解决思路也比较清晰明了。
题目:
原文件如下图所示:
问题1:
分析问题:题目要求就是对“论语.txt”文件进行提纯,把空格,“【原文】”和“【注释】”以及注释内容去掉,并写入新的文件“论语-原文.txt”。注意:收尾空格要去掉。
解决思路:
1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。
2,遍历列表,对每一个列表中的元素用strip函数和replace函数分别去掉换行符“\n”和收尾空格(因为源文件有些行为空,读取的时候任会有“\n”,这样去掉换行符方便后面处理)。
3,去掉换行符和收尾空格后,我们就可以观察当前文件内容(可以输出查看),不难发现除了原文内容,其他行第一个字符要么是“【”就是“(”,这样我们就可以用if语句进行筛选。
4,对筛选的内容写入新的文件即可。
代码实现:
#!/usr/bin/env python#-*- encoding:utf-8 -*-#作者:赖正华
defread_files():"""读取文件"""files= open("C:\\WEXAM\\000000000000\\论语.txt","r",encoding="gbk") #文件位置以文件所在位置为准
txts =files.readlines()
n=0for txt in txts: #也可以直接遍历files,效果是一样的。
new_txt = txt.strip('\n').replace(' ','')if new_txt and new_txt[0] != '【' and new_txt[0] != '(':
n+= 1write_files(new_txt+ "\n")print("第{}句写入成功!".format(n))
files.close()defwrite_files(strs):"""写入文件"""files= open("C:\\WEXAM\\000000000000\\论语-原文.txt","a+",encoding="gbk")# 文件位置以文件所在位置为准
files.write(strs)
files.close()if __name__ == "__main__":
read_files()print("操作成功!")
另一种解决思路:
files = open("C:\\Users\\赖正华\\Desktop\\论语.txt","r",encoding="utf-8")
lines=files.readlines()
num= 1
for line in lines: #也可以直接遍历files,效果是一样的。
line = line.strip('\n').replace(' ','')if line and num == 1 and line.count("【原文】") == 0 and line.count("【注释】") ==0:print(line)if line.count("【原文】") >0:
num= 1
if line.count("【注释】") >0:
num=0
files.close()#输出内容如下:#子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”
问题2:
分析问题:题目要求就是对问题一写入的新文件“论语-原文.txt”进一步提纯,也就是去掉每行文字中所有小括号及内部数字,并写入新的文件“论语-提纯原文.txt”。
解决思路:
1,用open函数打开源文件,并用readlines函数逐行读取文件内容,这里返回列表类型,每一行为列表的一个元素。
2,也是遍历列表,用strip函数或replace函数去除即可,这里我用replace函数。
3,对写好的内容写入新的文件即可。
代码实现:
#!/usr/bin/env python#-*- encoding:utf-8#作者:赖正华
defread_files():"""读取文件"""with open("C:\\WEXAM\\000000000000\\论语-原文.txt","r",encoding="gbk") as files:
lines=files.readlines()
n=0for line in lines: #也可以直接遍历files,效果是一样的。
n += 1
for i in range(1,11):
s= '(' + str(i) + ')'line= line.replace(s,'')
write_files(line)print("第{}行写入成功!".format(n))defwrite_files(strs):"""写入文件"""with open("C:\\WEXAM\\000000000000\\论语-提纯原文.txt","a+",encoding="gbk") as files:
files.write(strs)if __name__ == "__main__":
read_files()print("操作成功!")
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)