2017-09-05 8 views
0

私はこれを使って、ファイル内のテキストodirxを置き換え、別のファイルに書き出します。しかし、私はsm_template2.txtの代わりに出力ファイル名をsm_0120.txtにしたいと思います。ファイル全体を読み取らずに出力ファイル名を変更するにはどうすればよいですか?

replacements = {'odirx':'0120'} 

with open('/dir/sm_template.txt') as infile, open('/dir/sm_template2.txt', 'w') as outfile: 
    for line in infile: 
     for src, target in replacements.items(): 
      line = line.replace(src, target) 
     outfile.write(line) 

どうすればいいですか?

それはで読んだ後、ファイル全体を書き出すことができますが、私は、ファイル全体

関連で読まずにこれをやってみたかった:私はOKAY AM replacing text in a file with Python

TRIAL

私の唯一の選択であればそれを読んで

replacements = {'odirx':'0120'} 

with open('/dir/sm_template.txt') as infile, open('/dir/sm_template2.txt', 'w') as outfile: 
     for line in infile: 
      for src, target in replacements.items(): 
       line = line.replace(src, target) 
      lines.append(line) 
      outfile = os.path.join(os.path.normpath(os.getcwd()+os.sep+"sm_"+os.sep+target+os.extsep+"txt")) 

どうすればいいですか?

+0

あなたはそれを –

+0

を保存すると、ファイルを変更するための使用os.rename彼は私が正しく理解していれば – jmercouris

+0

はい@jmercourisファイルの2つのコピーを望んでいます!私の編集「TRIAL」を見てください – maximusdooku

答えて

0

残念ながらあなたは、ストリームの一部としてそれを変更しているので、新しいファイルを記述する必要があります、しかし明確にすること

周りに方法はありません、ファイルにhttps://stackoverflow.com/a/123212/1699398

0
をコピーする機能が存在しません

使用os.rename:

os.rename('/dir/sm_template2.txt', '/dir/sm_0120.txt') 
関連する問題