需要同时修改多个文本文件?例如,将所有文件的英国式拼写改为美式拼写。本文将演示如何使用Python高效地完成此任务。
假设您有五个文本文件,都将“World”错写成了“Wolrd”。我们将使用Python脚本来更正所有这些文件中单词的拼写。
首先,准备要处理的数据(文本文件)。本教程创建一个名为“hello”的目录,其中包含多个文件和子目录,以及名为1.txt、2.txt、3.txt、4.txt和5.txt的文本文件。
尽管我们使用的函数会遍历目录中的所有文件,但您可以在代码中添加条件语句,以仅处理需要修改的文件。
接下来,读取“hello”目录的内容。可以使用for-in
循环结合is_file()
方法和startswith()
方法,只读取和写入目标文件。
我们以r
模式打开文件,以便读取文件内容,并在进行必要的更改后写入文件。
if not item.name.startswith('.') and item.is_file(): with open(item, mode="r+") as file: file_text = file.read()
关键步骤是使用正则表达式搜索“Wolrd”。Python中,使用re.compile()
编译正则表达式:
将正则表达式模式编译成正则表达式对象,可以使用其
search()
方法进行匹配。
然后使用sub()
方法将错误拼写替换为正确拼写:
regex = re.compile('Wolrd') file_text = regex.sub('World', file_text)
最后,将替换后的新文本写入文件:
file.seek(0) file.write(file_text)
完整的Python脚本如下,它将在每个文件中查找“Wolrd”,并将其替换为“World”:
import os, re with os.scandir('hello') as directory: for item in directory: if not item.name.startswith('.') and item.is_file(): with open(item, mode="r+") as file: file_text = file.read() regex = re.compile('Wolrd') file_text = regex.sub('World', file_text) file.seek(0) file.write(file_text)
如您所见,Python 使用 for
循环轻松地对多个文件进行修改。 记住使用正则表达式进行模式匹配非常重要。
更多关于Python循环的信息,请参考Python循环详解。更多关于正则表达式的资料,请参考Python正则表达式教程。
本文已更新,并包含Monty Shokeen的贡献。Monty是一位全栈开发者,他热爱编写教程和学习新的JavaScript库。
以上是如何使用Python更改多个文件的详细内容。更多信息请关注PHP中文网其他相关文章!