Ich schreibe ein Skript in Python, das bestimmte Zeilen in Dateien Linux ersetzt. Sagen wir, ich habe eine Datei hallo im Verzeichnis/home genannt, die enthält:Python re spezifische Syntax
hi 873840
Hier ist mein Skript:
#! /usr/bin/env python
import re
fp = open("/home/hi","w")
re.sub(r"hi+", "hi 90", fp)
Mein gewünschte Ergebnis ist:
hi 90
jedoch, wenn i run it ich bekomme diesen Fehler und die Hi-Datei endet mit balnk:
Traceback (most recent call last):
File "./script.py", line 6, in <module>
re.sub(r"hi+", "hi 90", fp)
File "/usr/lib/python2.7/re.py", line 155, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or buffer
Stimmt etwas nicht mit meiner Syntax? Danke
're.sub (Muster, repl, string, count = 0, flags = 0)': dritter Parameter ist eine Zeichenkette nicht ein Dateizeiger, weshalb Sie Fehler bekommen. – chakri
Mögliches Duplikat von [Ersetze Zeichenkette in Datei mit regulären Ausdrücken] (https://stackoverflow.com/questions/35688126/replace-string-in-file-with-using-regular-expressions) –