2011-08-11 12 views
-4

config.xmlの であるすべてのファイルを親フォルダで検索し、それらのファイルで別の文字列を置き換える必要があります。 (これはどこですか?)複数のpythonでの検索と置換

+5

これまでに何を試しましたか?何がうまくいかなかったのですか。どこで立ち往生しましたか? – cdhowie

+2

これはなぜPythonを使用するのですか?あなたはfindとsedを使ってシェルからこれを行うことができます。 –

+1

手作業で書類を書いて自分のアイデアを試してみるのがいいでしょう。あなたがそれを扱うことができないのであれば、多分あなたが試みたいくつかのコード/アルゴリズムのステップを使って質問してください。私はあなたに何も試していないと思うだけであなたの問題を解決するために他の誰かが期待しています。 – Bogdan

答えて

1
import os 
parent_folder_path = 'somepath/parent_folder' 
for eachFile in os.listdir(parent_folder_path): 
    if eachFile.endswith('.xml'): 
     newfilePath = parent_folder_path+'/'+eachFile 
     file = open(newfilePath, 'r') 
     xml = file.read() 
     file.close() 
     xml = xml.replace('thing to replace', 'with content') 
     file = open(newfilePath, 'w') 
     file.write(str(xml)) 
     file.close() 

ご希望のものをお探しください。

+0

ありがとう!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! – Mavig

+0

あなたの問題を解決したら解決したら.. welcome –

+0

それはうまくいきませんでした:( – Mavig

0

os.walk()を見てみると、フォルダとサブフォルダを再帰的に移動することができます。

次に、各行(for line in myfile: ...)を読み取り、置換(line = line.replace(old, new))して、その行を一時ファイル(tmp.write(line))に保存してから、最後に元のファイルにコピーすることができます。

+0

ありがとう。私が与えられた例はうまくいかなかった:(それは何もしなかった。 – Mavig