在python中查找和替换多个文件中的多个字符串

时间:2014-02-04 23:48:42

标签: python list file replace directory

我正在尝试浏览目录中的一堆文件,找到并替换字符串列表并将它们写入同一文件。当我运行脚本时,目录中的所有文件都变成空白!我在这里做错了什么?

os.chdir("Resources/maps_sideScrolling/HD")

replacements = {'tilewidth=\"16\"':'tilewidth=\"32\"', 'tileheight=\"16\"':'tileheight=\"32\"', '.png':'-hd.png'}

for files in os.listdir("."):
    if files.endswith("-hd.tmx"):
        fo = open(files, "rU")
        fw = open(files, "w")

        for line in fo:
            for src, target in replacements.iteritems():
                line = line.replace(src, target)
            fw.write(line)

        fo.close();
        fw.close();

1 个答案:

答案 0 :(得分:2)

如果您想覆盖该文件,可以使用以下代码:

os.chdir("Resources/maps_sideScrolling/HD")
replacements = {'tilewidth=\"16\"':'tilewidth=\"32\"', 'tileheight=\"16\"':'tileheight=\"32\"', '.png':'-hd.png'}

for files in os.listdir("."):
    if files.endswith("-hd.tmx"):
        fo = open(files, "rU+")
        text = fo.read()
        for src, target in replacements.iteritems():
                text = text.replace(src, target)
        fo.seek(0)
        fo.write(text)
        fo.truncate()
        fo.close()