Python实战:批量修改文本文件

article/2025/9/3 21:58:24

Python实战:批量修改文本文件

sub方法、listdir方法、with open as 函数的实战用法

一、需求:

目前我们有一个文件夹,里面有爬虫抓取的txt文档1000篇,但是由于抓取格式问题,每篇文章之后都有几行相同的乱码现在我们需要写一个程序去掉其中的乱码

所以我们需要:读文件目录,遍历其中文件,替换字段三个操作。其中替换字段是核心操作

二、功能拆解

第一步:设计一个用于字符串替换的正则表达式。——(调用re.sub()方法)

第二步:对文件和对文件目录操作(或者用已有的目录表格操作)——with open as 语句、同时涉及读写文档

第三步:遍历文件,进行操作——os模块的os.listdir()方法os.getcwd()方法、循环(迭代器)、自定义函数

三、过程

第一步:设计一个可以修改字符串的程序

假设已知我们已经知道处理符合复杂规则的字符串需要正则表达式和re模块

根据需求,我们需要调用re.sub()方法来进行字符串的替换

import re #使用sub首先要导入re模块 
re.sub(pattern,"替换的字符""被搜索的文件",count,flags)

在这里插入图片描述

此处 pattern 是指明匹配模式的模式字符串。这个串加上一个r或者R之后变为原生字符串,因为模式字符串中可能会有很多斜杠反斜杠。但是由于这个例子没有斜杠反斜杠,所以不加r也可以运行出结果。

第二步:接入文档

此处我们需要读写文件,先读入文件,替换字符,再写入文件

首先我们 命名一个path指明我们需要打开的文件名字

这个path的命名是可以改变的,也可以命名成file file_Object f1等等

格式为引号里面 文件名称加上引号里面文本格式

path = '填入你需要的文件名'+'.txt'

然后用with open语句打开文件

因为with 语句可以自动关上打开的文件,所以我们选用这个语句

open语句包含三个参数:第一个参数指出文件名,第二个参数指明使用文件的方式,第三个文件指明编码方式 as f1用于指明 打开后的文件的名字

注意: f1后面需要冒号,因为对此文件的操作需要相对于with缩进

with open(path,'r',encoding='utf-8') as f1:

打开文件后,需要把文件中的内容赋给一个字符串text1(此处text1是使用者自己命名,下文简写为‘自己命名’)

然后调用re.sub()方法替换字符,并把结果储存在text2(自己命名)中

在这里插入图片描述

此时我们已经把修改好的字符串存入text2。但是我们需要把text2写入原来的文本中,而’r’参数是只读方式打开文档,所以我们以’w’参数再打开一遍文档。【注意】:'w’方法的写入方式是清除原来的所有内容,再填入文本。 但是由于我们的操作是基于全部文本的,text2中储存正是我们需要的全体文本,所以可以使用’r’参数

在这里插入图片描述

因为我们之前是f1关掉了的,所以我们此处命名为f1也可以,但是为了避免混淆,我们是把他作为f2打开。
.flush()方法是把写入文件的内容立即保存。
【代码优化】
第一版代码是把一个文件只读打开,关上,再用只写打开
优化之后两个文件同时打开,只用开一个字符串,缩短代码
第一版
在这里插入图片描述
第二版
请添加图片描述

输入
在这里插入图片描述
输出在这里插入图片描述

第三步:把设计好的程序封装成函数

使用def 创建函数cleantext(自己命名) 函数名后面需要有一个括号,括号里放函数的参数。这个函数的参数容易知道是文件的名字。

【注意】创建函数之后需要需要更改缩进量

第四步:调用目标文档所在目录,用列表储存目录,并通过循环调用函数

我们需要的文件是存在一个叫做’txt’的文档里面的,所以我们需要对txt目录进行操作

假设我们知道对目录进行操作需要使用os模块

所以我们首先导入os包

首先我们需要了解目前我们脚本的工作目录,通过os.getcwd()来检查我们的工作目录

在这里插入图片描述

然后把’txt’文件夹放入当前工作目录以便被操作

接下来我们需要获取’txt’目录下面的所有文件名,因为我们的最终操作是对目录下的文件的。

此处需要使用os.listdir()方法,该方法是用来获取目录下的文件名的

参数用来指明需要获取的路径,如果不填就默认获取当前工作目录文件名

该参数需要被引号引起来,由于我们已经把txt放在了操作目录之下,所以只需要运用相对路径即可。

在这里插入图片描述

我们已经把txt里的文件名称放入了’filenames’(自己命名)的列表中,现在我们通过迭代器操作里面的单个文件,并把参数’file’传入cleantext函数

在这里插入图片描述

然后我们需要更改cleantext的接口使其能够接受file参数

由于file是在txt目录下,而不是在当前工作目录下,所以我们在path变量的名字之前需要加入一个路径名,这个路径名也是相对路径,可以直接复制os.listdir()里面的路径名

【注意】如果不复制这个路径名,就会报错,显示找不到这个文件

在这里插入图片描述

调好接口,程序就可以运行!完结撒花

四、补充open参数的部分用法

open函数的使用方式和编码方式

path ='需要处理的文件名字'+'.txt'#后一个字符串是表示文件的格式的,注意txt前面有一个点
with open(path,'使用方式',encoding='编码方式' ) as 

使用方式:'r’只读,'w’只写,'w+'清空内容后读写,'r+'读取后覆盖原内容

‘a’ 写入,‘a+’ 追加内容

编码方式;utf-8 ISO-8859-1 ansi 等等,编码方式不行的时候换一换。

五、sub函数用法

sub方法一共有五个参数:

第一个参数表示模式字符串:使用正则表达实现复杂的匹配模式

第二个参数表示替换对象(这个参数放你希望在结果中看到的字符串)

第三个参数表示被查找对象,全集

第四个参数表示替换次数(默认全部替换,不一定填入)

第五个参数控制匹配方式(可以不填)


http://chatgpt.dhexx.cn/article/xCFFDKXb.shtml

相关文章

Python实战,爬取金融期货数据

大家好,我是毕加锁。 今天给大家带来的是 Python实战,爬取金融期货数据 文末送书! 文末送书! 文末送书! 任务简介 首先,客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注:获取的是…

20个Python实战项目(附源码),拿走就用。

Python是目前最好的编程语言之一。 由于其可读性和对初学者的友好性,已被广泛使用。 那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。 大家也可根据项目的需求,自己构建解决方法…

这4个Python实战项目,让你瞬间读懂Python!

前言 Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误…

验证email的Python实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

python实战—考勤报表数据分析处理

标题python实战—考勤报表数据分析处理 需求: 在部分考勤报表导出来的数据中,会出现多次打卡的记录,即excel同一单元格中会有多个时间记录,而Excel本身无法只能进行2个数据分列。 -存在员工忘记打卡,漏打卡、迟到早退…

python实战-读取xlsx表格批量替换文件名

文章目录 一、前言二、解决思路三、具体代码实现四、总结 一、前言 ​  一位在校当老师的同学遇到了一个需求,学生1寸照片是以学生姓名命名,现在需要重命名1寸照片,重命名为exel里对应的学生姓名的身份证号码,我心想这个需求很…

百看不如一练, 247 个 Python 实战案例!

众所周知,我们在学习Pyhont过程中,大都看书枯燥、看视频进度慢,网上查找的学习案例又比较凌乱不成体系。。。 百看不如一练,今天为大家搜集了一份Python从入门到进阶的实战案例合集,共计247个案例,185页内容…

整理了200多个Python实战案例,都有完整且详细的教程

不管是学习什么语言,最终目的都是做项目。搜遍全网,整理了200多个Python实战的小项目,都有完整的代码,以及代码中用到的数据源等等。可以直接拿来用,也可以用于学习练手寻找思路。 告别枯燥,60秒学会⼀个⼩…

精选32个最新Python实战项目(附源码),拿走就用

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。大家也…

Appium + python 实战

文章目录 Appium介绍Appium 原理Appium使用Appium Python实战 Appium介绍 是一个移动端的自动化测试框架,是跨平台的,支持ios和Android平台上的移动原生应用、混合以及web移动应用,可以针对不同的平台使用一套API来编写测试脚本&#xff0c…

30个有趣的Python实战项目(附源码)

大家好,今天给大家重磅推荐我的好朋友J哥的公众号——「菜J学Python」,J哥经常在公众号分享有趣的Python实战项目,而且基本都附代码和数据。废话不多说,大家先点击以下卡片关注一波: 点击关注菜J学Python J哥是985金融…

35个Python实战项目,完整源代码!

收集整理最新36个python实战项目源代码,系统实用,不是普通的小脚本! 多看多练是提升代码能力的最佳途径,一起操练起来! 视频转字符动画 12306 B站弹幕 B站滑块验证码破解 GUI签名 python爬取并简单分析51job py…

全网首发!精选32个最新Python实战项目(附源码),拿走就用!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。接下来,我将给大家介绍32个非常实用的Python项目,帮助大家更好的学习Python。大家也…

整理了60个 Python 实战例子,拿来即用!

人生苦短,我用 Python! 大家好,最近有一些朋友问我有没有一些 Python 实战小案例。今天我整理排版了一遍,给大家分享一下。喜欢记得点赞、收藏、关注。 整理了60个Python小例子,拿来即用! 整理了60个 Py…

OpenCV-Python实战(1)——OpenCV简介与图像处理基础

OpenCV-Python实战(1)——OpenCV简介与图像处理基础 OpenCV介绍Python安装OpenCVOpenCV主要模块OpenCV应用场景 OpenCV图像处理基础图像基础图像处理中的主要问题图像处理流程 像素、颜色、通道、图像和颜色空间图像描述图像文件类型 OpenCV中的坐标系Op…

精选了20个Python实战项目(附源码),拿走就用!零基础练手不二项目!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。 那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。 …

精选了20个Python实战项目(附源码),拿走就用!

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昔闻洞庭水,今上岳阳楼。 大家好,我是小F。 Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性,已被…

100个精选Python实战项目案例,送给缺乏练手经验的你

随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中。为什么这么多人学 Python ?我要喊出那句话了:“人生苦短,我用 Python!”,正是因为语法简单、容易学习,所以 Python 深受大家喜…

python:实战篇

python 实战 python 实战篇 1、python解压1. python解压zip、7z2. python 解压rar1)windows:2)linux: 2、python执行Linux系统命令的3种方法3、python代码打包成exe安装包安装打包加密【附】 4、windows下:py文件引用其他py文件5、…

【No.2】CAS单点登录的原理分析

上一篇说了基于Cookie的单点登录的实现:http://blog.csdn.net/readiay/article/details/52814001,虽然他实现简单,但是也问题颇多。例如:用户名密码不停传送,增加了被盗号的可能。另外,不能跨域&#xff01…