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