2017-05-01 9 views
-2

Ich schrieb ein Python-Skript, wo ich eine Datei lesen und schreiben muss. Ich habe es zuerst unter Windows geschrieben, und als ich versuchte, denselben Code unter Ubuntu (Linux) mit der gleichen Python-Shell (Spyder) auszuführen, bekam ich den Fehler "Keine solche Datei oder kein Verzeichnis:" data.csv ". Ich hatte viele Versuche, dieses Problem zu beheben, am Ende fand ich heraus, dass ich alle "\" durch "//" in meinem Code ändern muss. Also funktioniert jetzt alles gut, aber WARUM !?Warum ist "//" anstelle von "\" für Spyder unter Ubuntu im Vergleich zu Spyder unter Windows?

+0

Mögliche Duplikate von [warum so viele "\ s in diesem Code ... was ist die Verwendung davon ..?] (Http://stackoverflow.com/questions/9109879/why-so-many- s-there-in-diesem-Code-was-ist-die-Verwendung-von-es) – MackM

+0

@Mack Das ist eine völlig andere Verwendung für Backslash. – zondo

Antwort

5

da Windows Schrägstriche als Verzeichnistrenn verwendet und POSIX-Systeme (einschließlich Linux) vorwärts Schrägstriche verwenden Siehe os.sep constant:..

der Charakter durch das Betriebssystem verwendet, um Pfadnamen Komponenten zu trennen Dies ist '/' für POSIX und '\\' für Windows.

Verwenden Sie immer das Modul os.path, um Pfade zu erstellen; es wird auf Plattformunterschiede aufpassen.

+0

'pathlib' ist eine weitere Option für die Behandlung von Pfaden in plattformübergreifendem Code - besonders in Version 3.6+, in der die Unterstützung in der Standardbibliothek besser unterstützt wird. – eryksun