百木园-与人分享,
就是让自己快乐。

Python二级-文本处理-论语

1.问题描述:请编写程序,提取《论语》文档中所有原文内容,输出保存到“论语-提取版.txt”文件。输出文件格式要求:去掉文章中原文部分每行行首空格及如“1.11”等的数字标志,行尾无空格、无空行。参考格式如下(原文中括号及内部数字是对应源文件中注释项的标记):

2.请编写程序,在“论语-提取版.txt”基础上,进一步去掉每行文字中所有括号及其内部数字,保存为“论文-原文.txt”文件。

 论语下载地址

问题一:

1 k=0
2 a=0
3 b=0
4 l=[]
5 content=[]
6
7 try:#异常捕捉框架
8 with open(r\'C:\\Users\\DELL\\Desktop\\论语文本\\论语.txt\',\'r\',encoding=\'utf-8\') as file1:
9 for line in file1:#逐行遍历文本
10 newline=line#单行处理预留
11 if newline[2:5] in [str(m)+\'·\'+str(n) for m in range(1,25) for n in range(1,25)]\\
12 or newline[2:6] in [str(m)+\'·\'+str(n) for m in range(1,25) for n in range(1,25)]\\
13 or newline[2:7] in [str(m)+\'·\'+str(n) for m in range(1,25) for n in range(1,25)]:#判断首部数字标识
14 for p in [str(m)+\'·\'+str(n) for m in range(45,0,-1) for n in range(45,0,-1)]:#消除首部标识,并加入列表content
15 if p in newline[0:9]:
16 newline2=newline.replace(p,\'\')
17 content.append(newline2)
18 break
19
20 else:#无标识则直接加入content
21 content.append(newline)
22
23 with open(r\'C:\\Users\\DELL\\Desktop\\论语文本\\论语改2.txt\',\'w\',encoding=\'utf-8\') as file2:
24 for i in range(len(content)):#进行标识起点的识别
25
26 if \'【原文】\' in content[i] and i>=b:
27
28 a=i
29 k=i
30
31 while k!=0:
32 if \'\' in content[k+1]:#判断内容是否属于标识终点,是则跳出循环进行标识起点的判断
33 b=k+1
34 l.append([a,b])
35 break
36 else:
37 k+=1#将k的标识加一,进行下一行的判断
38 for m,n in l:#遍历标识起点和终点
39 for line in content[m+2:n-1]:#将标识起点和终点的原文部分直接逐行处理并写入文件
40 if line==\'\\n\':
41 continue
42 else:
43 file2.write(line + \'\\n\')
44
45
46 except Exception as t:
47 print(t)

来源:https://www.cnblogs.com/tlwhhy/p/14770448.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python二级-文本处理-论语

相关推荐

  • 暂无文章