def replace(file_path, pattern, subst):
file_path = os.path.abspath(file_path)
#Create temp file
fh, abs_path = mkstemp()
new_file = open(abs_path,'w')
old_file = open(file_path)
for line in old_file:
new_file.write(line.replace(pattern, subst))
#close temp file
new_file.close()
close(fh)
old_file.close()
#Remove original file
remove(file_path)
#Move new file
move(abs_path, file_path)
ファイル内の文字列を置き換えるこの機能があります。しかし、パターンが見つかった行全体を置き換える良い方法がわかりません。
たとえば、パターン「ジョン」を使用して「ジョンは一日中一生懸命働いた」という行を置き換えたい場合、「マイクは一生懸命働いていませんでした」と置き換えます。
現在の関数では、行全体を置き換えるには、行全体をパターンで記述する必要があります。