投稿と同じように:Replace string in a specific line using python、結果は私のわずかに異なる例ではあまり先入観がありませんでした。非標準テキストファイルの特定の行に文字列を置き換えます
私はWindows 7でpython 3を使用しています。ディレクトリ内の一部のファイルをバッチ編集しようとしています。基本的に.LICタグ付きのテキストファイルです。それが私の問題に関連しているかどうかは分かりません。私はPythonに問題なくファイルを読むことができます。 私の目的は、このファイルの特定の行にある特定の文字列を置き換えることです。
import os
import re
groupname = 'Oldtext'
aliasname = 'Newtext'
with open('filename') as f:
data = f.readlines()
data[1] = re.sub(groupname,aliasname, data[1])
f.writelines(data[1])
print(data[1])
print('done')
上記のコードを実行すると、UnsupportedOperation: not writable
が返されます。変更をファイルに書き戻す際に問題が発生しています。他の投稿の提案に基づいて、私はオプションをopen('filename', "w")
機能に追加しました。これにより、ファイル内のすべてのテキストが削除されます。
提案に基づいて、r+
オプションが試されました。これにより、ファイルの正常な編集につながりますが、正しい行を編集するのではなく、編集された行がファイルの末尾に追加され、元のまま残されます。
'r +'モードを使ってみてください。読み書きのためにファイルを開きます。 – Wondercricket
私はあなたの提案を試みました。これにより私はファイルを編集することができますが、修正された行は、目的の行を編集するのではなく、単にファイルに追加されます。 – DavidU