簡體   English   中英

使用python編輯子目錄中的所有文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM