2012-01-15 4 views
1

私はtxtファイルから読み込み、新しい行の追加、既存の行の削除や編集といった基本的な作業を行うpythonスクリプトを書いています。削除と編集のために、 "readlines()"を使ってファイル全体をリストとして読み込み、編集したリストを使ってファイルを上書きします。これにより、データが失われる可能性が高くなります。だから私の質問は、私はそれらを上書きせずにtxtファイルを編集することができますか?すべてを上書きせずにtxtファイルの途中で行を編集するには?

+0

いいえ、方法は、ほとんどのファイルシステムでは、すべてでは、ありませんファイル内にデータを挿入するためによく使用されるものです – jsbueno

答えて

4

伝統的な解決策は.savファイルに元のファイルをコピーし、元のファイル名に新しい編集されたバージョンを作成することです:

>>> import os 
>>> filename = 'somefile.txt' 
>>> with open(filename) as f: 
     lines = f.readlines() 
>>> basename, ext = os.path.splitext(filename) 
>>> savefile = basename + '.sav' 
>>> os.rename(filename, savefile) 
>>> lines = map(str.upper, lines) # do your edits here 
>>> with open(filename, 'w') as f: 
     f.writelines(lines) 
+0

サンプルコード? – Alinwndrld

関連する問題