STR1
を検索し、STR2
を含む行全体を置き換える必要があるファイルがあります。たとえばfile1
は、以下のデータPython:行内のSTR1を検索し、行全体をSTR2に置き換えます。
Name: John
Height: 6.0
Weight: 190
Eyes: Blue
が含まれている私は、上記のファイルにName
を検索し、その後と行全体を交換する必要があります。私はこれを簡単にsedで達成することができます
sed -i 's/.*Name.*/Name:Robert/' file1
しかし、どのようにPythonで同じを取得します。行全体を置き換えるために上記のコードを変更する方法
#! /usr/bin/python
import fileinput
for line in fileinput.input("file1", inplace=True):
# inside this loop the STDOUT will be redirected to the file
# the comma after each print statement is needed to avoid double line breaks
print line.replace("Name: John", "Name: Robert"),
を、例えば以下のように私はfileinput
を使用して別の文字列で1つの文字列を置き換えることができ、'*'
を使用しても、検索条件(if "Name" in line
)でファイル内のすべての行を置き換えます
どのように上記のコードはあなたが望むことをしませんし、* '' * 'を使って*ファイル内のすべての行を*置き換えることはどういう意味ですか? –
'import re; line = re.sub( '。* Name。* /'、 'Name:Robert'、line) '? –
'Name:John'の代わりに' Name'という文字列を検索として使い、 'John'prioriという値がわからないので、行全体を置き換えたいと思います。 '*'はファイル全体を 'Name:Robert'という文字列で置き換えます。 – WanderingMind