Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python编辑子目录中的所有文件_Python - Fatal编程技术网

使用python编辑子目录中的所有文件

使用python编辑子目录中的所有文件,python,Python,我试图递归地循环遍历一系列目录(大约3层)。在每个目录中都有一系列文本文件,我想用目录路径替换一行文本,如果该行包含某个字符串,例如 /path/to/text/file/fName.txt 如果fName.txt文本中fName中的一行包含字符串“String1”,我想用“some text”+file替换这一行,其中file是路径的最后一部分 这在python中似乎应该很容易,但我似乎无法管理它 编辑:为一个写得很糟糕的问题道歉,我必须赶紧离开,不应该按回车键 这是我到目前为止所拥有的 i

我试图递归地循环遍历一系列目录(大约3层)。在每个目录中都有一系列文本文件,我想用目录路径替换一行文本,如果该行包含某个字符串,例如

/path/to/text/file/fName.txt
如果fName.txt文本中fName中的一行包含字符串“String1”,我想用“some text”+file替换这一行,其中file是路径的最后一部分

这在python中似乎应该很容易,但我似乎无法管理它

编辑:为一个写得很糟糕的问题道歉,我必须赶紧离开,不应该按回车键

这是我到目前为止所拥有的

import os

for dirname, dirs, files in os.walk("~/dir1/dir2"):
    print files
    for fName in files:
            fpath = os.path.join(dirname, fName)
            print fpath
            f = open(fpath)
            for line in f:
                #where I'm getting stuck
                s = s.replace("old_txt", "new_txt")

            #create new file and save output
我一直在讨论的是如何仅基于线路的一部分替换整个线路。例如,如果行是

That was a useless question,
我似乎无法取代我想要的东西。我想做的是仅仅基于搜索“无用”来改变整个行。还有,有没有比重写整个文件更好的修改单行的方法

谢谢。

(看看示例)就是您所需要的


将open(…)作为f:
解析每个文件,分析它,并用
将open(…,'w')作为f:

覆盖它(仔细地,在测试后)?i、 发布一些代码。。。请参阅以获取文件灵感