使用python从文件夹中的多个文件中查找和替换字符串

时间:2018-04-26 07:37:56

标签: python string directory find-replace

我想找到字符串,例如我的文件夹中的“Version1”包含多个“.c”和“.h”文件,并使用python文件替换为“Version2.2.1”。

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这是使用os,glob和ntpath的解决方案。结果保存在名为“output”的目录中。您需要将它放在您拥有.c和.h文件的目录中并运行它。

创建一个名为output的单独目录,并将编辑过的文件放在那里:

import glob
import ntpath
import os

output_dir = "output"

if not os.path.exists(output_dir):
    os.makedirs(output_dir)

for f in glob.glob("*.[ch]"):
    with open(f, 'r') as inputfile:
        with open('%s/%s' % (output_dir, ntpath.basename(f)), 'w') as outputfile:
            for line in inputfile:
                outputfile.write(line.replace('Version1', 'Version2.2.1'))

将字符串替换为

重要!请确保在运行此文件之前备份文件:

import glob

for f in glob.glob("*.[ch]"):
    with open(f, "r") as inputfile:
        newText = inputfile.read().replace('Version1', 'Version2.2.1')

    with open(f, "w") as outputfile:
        outputfile.write(newText)