[英]Edit all files in subdirectories with python
我試圖遞歸遍歷一系列目錄(大約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,
我似乎無法代替我想要的東西。 我想做的是僅根據搜索“無用”來更改整行。 另外,有沒有比重寫整個文件更好的方法來修改一行?
謝謝。
os.walk
(看例子)就是您所需要的
with open(...) as f:
解析每個文件,進行分析,並with open(..., 'w') as f:
覆蓋它(仔細地,在測試之后) with open(..., 'w') as f:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.