当前位置:
首页 > 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
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数