VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 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:\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)
复制代码

 问题二:

复制代码
1 try:
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:
3         for line in file3:
4             for i in range(0,30):#
5                 line=line.replace(f'({i})',"")#由于.replace方法具有生成新对象,故需要重新定义
6             file4.write(line)#将处理好的每行字符串文本写入文件8
7 except Exception as t:
8     print(t)
复制代码

文章出处:https://www.cnblogs.com/tlwhhy/p/14770448.html

 


相关教程