-1

一連のディレクトリ (約 3 レベルの深さ) を再帰的にループしようとしています。各ディレクトリには一連のテキスト ファイルがあります。たとえば、行に特定の文字列が含まれている場合、テキスト行をディレクトリ パスに置き換えたいとします。

/path/to/text/file/fName.txt

fName.txt テキストの fName の行に文字列 'String1' が含まれている場合、この行を 'some text' + file に置き換えたいと思います。file はパスの最後の部分です。

これはPythonでは簡単なはずですが、管理できないようです。

編集: 非常に下手な質問で申し訳ありません。急いで立ち去らなければなりませんでした。Enter キーを押すべきではありませんでした。

これが私がこれまでに持っているものです

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,

私が望むものに置き換えることはできないようです。私がやろうとしているのは、「役に立たない」の検索のみに基づいて行全体を変更することです。また、ファイル全体を書き直すよりも、1 行を変更するより良い方法はありますか?

ありがとう。

4

1 に答える 1

3

os.walk(例を見てください)必要なのはそれだけです

各ファイルをwith open(...) as f:で解析し、分析し、(テスト後に慎重に)上書きしますwith open(..., 'w') as f:

于 2012-05-21T13:44:28.907 に答える