Beste Antwort
Wie löscht man eine Textdatei in Python?
In den meisten Sprachen sollte es ausreichen, die Datei zum Schreiben zu öffnen und dann zu schließen. Die Redewendung, die ich verwenden würde, lautet:
with open(theFile, “w”) as fp:
pass
Dies sollte eine Datei mit der Länge 0 hinterlassen.
Die Frage lautet: warum möchten Sie dies tun? Wenn Sie möchten, dass die Datei gelöscht wird, löschen Sie sie (siehe os.remove). Wenn Sie beabsichtigen, es zu überschreiben, müssen Sie es nicht zuerst löschen. Öffnen Sie es zum Schreiben und schreiben Sie den neuen Inhalt.
Antwort
In alten Versionen von Python hatte die Unterscheidung zwischen Text- und Binärdateien damit zu tun, wie Python Zeilentrennzeichen behandelte (meist nur relevant) zu MS-DOS / Windows-Verarbeitung von Textdateien (unter Verwendung von CR / LF-Zeichenpaaren zur Zeilenbeendigung) und alten Textdateien des Macintosh-Systems (vor MacOS X) (die CR, Wagenrücklauf (\ r) oder ASCII 0x0D verwendeten) in anstelle des LF (Zeilenvorschub, \ n, ASCII 0x0A, der unter Unix, Linux und MacOS X verwendet wird).
Dies wurde normalerweise von Python2-Interpreten automatisch erkannt und musste nur gelegentlich über- Alle Dateien können jedoch unter Python 2 und früher als einfache Byteströme (die mit 8-Bit-ASCII-Zeichen austauschbar waren) behandelt werden. Das Flag / mode „b“ auf open () für die Behandlung von Dateien als binär war nur ein Zeilenende.
Mit Python 3 ist die Geschichte komplizierter. Die einfache Annahme ist jedoch, dass Textdateien die Standardeinstellung sind und wie einige behandelt werden Codierung von Unicode (z. B. UTF-8 oder US-ASCII). Um Dateien als Binärdateien zu behandeln, fügen Sie Ihrem Modusargument beim Öffnen der Datei immer noch das Flag „b“ hinzu. Aber jetzt beinhalten alle Operationen an dieser Datei Bytes Objekte anstatt Zeichenfolgen. Lesevorgänge geben also Bytes zurück und Daten müssen als Bytes für Aufrufe der .write () -Methode (usw.).
Beachten Sie diese Beispiele:
# Default:
textfile = open(‘somefile.txt’)
## read-only, text, encoding depends on platform by likely UTF-8 or US-ASCII
# Binary:
data = open(‘somedata.bin’, ‘rb’)
## read-only, bytes() data
Der Modus kann auch w oder w + für beschreibbare Textdateien sein (mit optionalem Lesen / Schreiben durch Hinzufügen des +) oder a oder a + nur zum Anhängen . Das b -Flag kann zu jedem dieser für Bytes (binär) anstelle von Text hinzugefügt werden.
Hinweis: Sie können Textdateien in öffnen Binärmodus. Python behandelt sie lediglich als Byte-Streams und nicht als Text, und Sie müssen explizit Zeichenfolgenkonvertierungsfunktionen für den Inhalt aufrufen (mit expliziten Codierungsargumenten), um sie als Zeichenfolgen zu verwenden.
Hier ist eine Anleitung für Weitere Details: Python 3.X Strings Tutorial von Mark Lutz