Ich brauche Hilfe beim Debuggen eines seltsamen Dateiverhaltens in Python. Nimm das folgende Skript ( write_con.py
):
In Linux erstellt dies eine Datei namens con.txt
mit dem Inhalt hi
. In Windows schreibt dies hi
auf die Konsole und erstellt keine Datei. Ich habe das mit Python 2.5.1, 2.6.3, 2.6.5 und 2.7.2 versucht. Beispiel run:
Aber eine Datei, die etwas anderes als etwas benannt ist, das mit con
beginnt, funktioniert gut ( write_other_con.py
):
Hier ist ein Lauf:
%Vor% Was bewirkt, dass Windows-Versionen von Python in die Konsole schreiben, wenn das Präfix der benannten Datei con
?
Sie müssen die Wikipedia-Filename-Seite überprüfen. Es hat eine Tabelle mit den reservierten Zeichen für ziemlich viele Dateisysteme.
In Windows- und DOS-Dienstprogrammen sind möglicherweise auch einige Wörter reserviert und können nicht als Dateinamen verwendet werden. Beispiel: DOS-Gerätedatei:
CON , PRN, AUX, CLOCK $, NUL COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 und LPT9.
Vermächtnis . In DOS wird das Schreiben in eine Datei namens "CON" stattdessen in die Konsole geschrieben; Windows setzt diese Tradition fort.
Dies ist kein Python-Fehler, sondern eine Windows-Namenskonvention. Es gibt eine Liste mit reservierten Schlüsselwörtern, unter denen Windows keine Dateien oder Ordner speichern kann, einschließlich CON, PRN, AUX, CLOCK$, NUL
COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.
In Windows ist con reserviert Wort und kann nicht als Dateiname verwendet werden.
Tags und Links python