2016-11-29 5 views
1

Pythonで既存のファイル行を更新するには?Pythonでファイルの行を更新するには

例:改行を書き込まずにsession.xmlsesion-config.xmlに更新したいとします。

入力A.txt

fix-config = session.xml 

期待出力A.txt

fix-config = session-config.xml 
+0

あなたは、単一の行を上書きするか、ファイル全体を上書きしますか? –

+1

[Pythonでファイル内の行を検索して置換する]の可能な複製(http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a-file-in-python) –

答えて

0

がTigerhawkT3 @ソリューションは、小規模/中のファイルのために素晴らしい仕事です提案:

これを行う最も簡単な方法は、それを処理、リスト内のファイルを保存して、新しいファイルを作成することです。 非常に大きなファイルの場合は、ファイル全体をメモリに読み込むことができない可能性があります。次に、各行を別々に処理する必要があります。これらの線に沿って 何か作業をする必要があります:

import shutil 

with open('A.txt') as input_file: 
    with open('temp.txt', 'w') as temp_file: 
     for l in input_file: 
      if l.startswith('fix-config'): 
       temp_file.write('fix-config = session-config.xml\n') 
      else: 
       temp_file.write(l) 

shutil.move('temp.txt', 'A.txt') 
3

あなたは、テキストファイルの行を変異させることができない - あなたは完全に新しい行を記述する必要があり、そうでない場合でファイルの終わりは、すべての残りの部分を書き換える必要があります。

with open('A.txt') as f: 
    l = list(f) 

with open('A.txt', 'w') as output: 
    for line in l: 
     if line.startswith('fix-config'): 
      output.write('fix-config = session-config.xml\n') 
     else: 
      output.write(line) 
+1

この質問[ここ]の正確な複製があります(http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a-file-in-python)。どう思いますか? –

+0

一般的な標準的な複製に共通の質問がある場合は、その複製を使用して閉鎖の質問に投票またはフラグを立てることができます。 – Jarvis

+1

@ジャービス - これは本当におなじみの言葉です。 :P – TigerhawkT3

関連する問題