读取多个文本文件,搜索几个字符串,替换并写入 python

Read multiple text files, search few strings , replace and write in python

我的本地目录中有 10 个文本文件,名称类似于 test1test2test3,等等。我想阅读所有这些文件,在文件中搜索几个字符串,用其他字符串替换它们,最后以 newtest1、[=18 之类的方式保存回我的目录中=]newtest2,newtest3,等等。

例如,如果只有一个文件,我会执行以下操作:

#Read the file
with open('H:\Yugeen\TestFiles\test1.txt', 'r') as file :
filedata = file.read()

#Replace the target string
filedata = filedata.replace('32-83 Days', '32-60 Days')

#write the file out again
with open('H:\Yugeen\TestFiles\newtest1.txt', 'w') as file:
file.write(filedata)

有什么办法可以在 python 中实现这个目标吗?

如果你使用 Pyhton 3,你可以使用 os 库中的 scandir
Python 3 docs: os.scandir

有了它,您可以获得目录条目。
with os.scandir('H:\Yugeen\TestFiles') as it:
然后遍历这些条目,您的代码可能看起来像这样。
请注意,我将您代码中的路径更改为入口对象路径。

import os

# Get the directory entries
with os.scandir('H:\Yugeen\TestFiles') as it:
    # Iterate over directory entries
    for entry in it:
        # If not file continue to next iteration
        # This is no need if you are 100% sure there is only files in the directory
        if not entry.is_file():
            continue

        # Read the file
        with open(entry.path, 'r') as file:
            filedata = file.read()

        # Replace the target string
        filedata = filedata.replace('32-83 Days', '32-60 Days')

        # write the file out again
        with open(entry.path, 'w') as file:
            file.write(filedata)

如果你使用 Pyhton 2,你可以使用 listdir。 (也适用于 python 3)
Python 2 docs: os.listdir

在这种情况下,相同的代码结构。但是您还需要处理文件的完整路径,因为 listdir 只会 return 文件名。