Python⼆级-⽂本处理-论语
1.问题描述:请编写程序,提取《论语》⽂档中所有原⽂内容,输出保存到“论语-提取版.txt”⽂件。输出⽂件格式要求:去掉⽂章中原⽂部分每⾏⾏⾸空格及如“1.11”等的数字标志,⾏尾⽆空格、⽆空⾏。参考格式如下(原⽂中括号及内部数字是对应源⽂件中注释项的标记):
2.请编写程序,在“论语-提取版.txt”基础上,进⼀步去掉每⾏⽂字中所有括号及其内部数字,保存为“论⽂-原⽂.txt”⽂件。
问题⼀:
1 k=0
2 a=0
3 b=0
4 l=[]
5 content=[]
6
7try:#异常捕捉框架
8 with open(r'C:\Users\DELL\Desktop\论语⽂本\论语.txt','r',encoding='utf-8') as file1:
9for line in file1:#逐⾏遍历⽂本
10 newline=line#单⾏处理预留
11if newline[2:5] in [str(m)+'·'+str(n) for m in range(1,25) for n in range(1,25)]\
12or newline[2:6] in [str(m)+'·'+str(n) for m in range(1,25) for n in range(1,25)]\
13or newline[2:7] in [str(m)+'·'+str(n) for m in range(1,25) for n in range(1,25)]:#判断⾸部数字标识
14for p in [str(m)+'·'+str(n) for m in range(45,0,-1) for n in range(45,0,-1)]:#消除⾸部标识,并加⼊列表content
15if p in newline[0:9]:
16 place(p,'')
17 content.append(newline2)
18break
19
writeline和write的区别python20else:#⽆标识则直接加⼊content
21 content.append(newline)
22
23 with open(r'C:\Users\DELL\Desktop\论语⽂本\论语改2.txt','w',encoding='utf-8') as file2:
24for i in range(len(content)):#进⾏标识起点的识别
25
26if'【原⽂】'in content[i] and i>=b:
27
28 a=i
29 k=i
30
31while k!=0:
32if'】'in content[k+1]:#判断内容是否属于标识终点,是则跳出循环进⾏标识起点的判断
33 b=k+1
34 l.append([a,b])
35break
36else:
37 k+=1#将k的标识加⼀,进⾏下⼀⾏的判断
38for m,n in l:#遍历标识起点和终点
39for line in content[m+2:n-1]:#将标识起点和终点的原⽂部分直接逐⾏处理并写⼊⽂件
40if line=='\n':
41continue
42else:
43 file2.write(line + '\n')
44
45
46except Exception as t:
47print(t)
问题⼆:
1try:
2 with open(r'C:\Users\DELL\Desktop\论语⽂本\论语改2.txt','r',encoding='utf-8') as file3,open(r'C:\Users\DELL\Desktop\论语⽂本\论语改8.txt', 'w', encoding='utf-8') as file4: 3for line in file3:
4for i in range(0,30):#
5 place(f'({i})',"")#由于.replace⽅法具有⽣成新对象,故需要重新定义
6 file4.write(line)#将处理好的每⾏字符串⽂本写⼊⽂件8
7except Exception as t:
8print(t)
若有不当之处,请各位不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论