Python二级-文本处理

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:UsersDELLDesktop论语文本论语.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:UsersDELLDesktop论语文本论语改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=="
":
41                     continue
42                 else:
43                     file2.write(line + "
")
44 
45 
46 except Exception as t:
47     print(t)
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python二级-文本处理