我正在尝试递归地遍历一系列目录(大约 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,
我似乎无法替换我想要的东西。我要做的是仅基于搜索“无用”来更改整行。另外,有没有比重写整个文件更好的修改单行的方法?
谢谢。