Mit Python zu Entfernen Sie Alle Zeilen, Passende Regex
Ich bin versucht, entfernen Sie alle Zeilen, wo meine regex-matches(regex ist einfach auf der Suche für jede Zeile mit yahoo). Jedes Spiel ist auf einer eigenen Zeile, so gibt es keine Notwendigkeit für die multiline-option.
Dies ist, was ich habe, so weit...
import re
inputfile = open('C:\\temp\\Scripts\\remove.txt','w',encoding="utf8")
inputfile.write(re.sub("\[(.*?)yahoo(.*?)\n","",inputfile))
inputfile.close()
Ich erhalte folgende Fehlermeldung:
Traceback (most recent call last):
line 170, in sub
zurück _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string oder buffer
Was ist also das problem?
Sie sind nicht das Lesen der Datei. Man braucht so etwas wie
Sie versuchen, schließen Sie 2 Dateien, die Sie nie geöffnet, und die Benennung einer Datei zum schreiben geöffnet
... und
Ich bin versucht zu ersetzen die übereinstimmenden Inhalte mit nichts, also "".
Sie sind nicht das Lesen der Datei. Man braucht so etwas wie
inputfile.readlines()
Sie versuchen, schließen Sie 2 Dateien, die Sie nie geöffnet, und die Benennung einer Datei zum schreiben geöffnet
inputfile
ist bestenfalls verwirrend.... und
re.sub
ist über das ersetzen der passende Inhalt einer Zeichenkette. Nicht die Prüfung, ob ein string match.Ich bin versucht zu ersetzen die übereinstimmenden Inhalte mit nichts, also "".
InformationsquelleAutor MrMr | 2013-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
fileinput
Modul, wenn Sie möchten, ändern Sie die original-Datei:Es ist das hinzufügen von neuen Zeilen zwischen dem text, der noch vorhanden ist. Irgendwelche Tipps, wie dies zu vermeiden?
Ich habe versucht die Zeile drucken, und drucken Sie (Linie), und print (Zeile), keiner scheint zu arbeiten.
verwenden
print(line, end = "")
auf py3.xSie können die Antwort akzeptieren, wenn es für Sie gearbeitet.
InformationsquelleAutor Ashwini Chaudhary
Hier ist die Python-3-Variante von @Ashwini Chaudhary Antwort, entfernen Sie alle Zeilen mit einem regex
pattern
aus einem gebenfilename
:Es wird davon ausgegangen
locale.getpreferredencoding(False) == input_file_encoding
da es sonst brechen könnte, die auf nicht-ascii-Zeichen.Damit es funktioniert, unabhängig davon, was das aktuelle Gebietsschema oder die Eingabe-Dateien mit einer anderen Kodierung:
InformationsquelleAutor jfs
Haben Sie die Datei zu Lesen, versuchen Sie so etwas wie:
InformationsquelleAutor Victor Castillo Torres