Ich habe eine Datei, in der ich suchen muss STR1
und ersetzen Sie die gesamte Zeile mit STR2
. Zum Beispiel der file1
enthält folgende DatenPython: Suche nach einem STR1 in einer Zeile und ersetze die ganze Zeile mit STR2
Name: John
Height: 6.0
Weight: 190
Eyes: Blue
ich für Name
in der obigen Datei suchen muß und dann die ganze Linie mit Name: Robert
ersetzen. Ich kann dies leicht in sed als
sed -i 's/.*Name.*/Name:Robert/' file1
erreichen, aber wie Sie das gleiche in Python bekommen. Zum Beispiel kann ich eine Zeichenfolge durch eine andere Zeichenfolge ersetzen fileinput
Verwendung als
#! /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"),
folge Wie der obigen Code zu modifizieren, um die gesamte Zeile zu ersetzen, indem '*'
alle Zeilen in der Datei ersetzt sogar mit einer Suchbedingung (if "Name" in line
)
Wie funktioniert der obige Code nicht, was Sie wollen und was bedeutet * mit ''*'' ersetzt alle Zeilen in der Datei * bedeuten genau? –
'importieren re; line = re ('. * Name. * /', 'Name: Robert', Zeile) '? –
Ich möchte die Zeichenfolge 'Name' anstelle von' Name: John' als Suche verwenden und die gesamte Zeile ersetzen, da ich den Wert 'John' apriori nicht kenne. Das '*' ersetzt die ganze Datei mit der Zeichenfolge 'Name: Robert' – WanderingMind