2016-05-09 10 views
2

Ich bin unter Windows, aber ich brauche einig Unix-Stil Pfad zu verarbeiten, wie zum Beispiel:Gibt es eine Möglichkeit, die Plattform für os.path anzugeben?

In[4]: os.path.abspath('/prj/vl') 
Out[4]: 'C:\\prj\\vl' 

, die nicht die korrekte Ausgabe ist ich will. Also frage ich mich, ob es einen Weg gibt, wie ich os.path zwingen kann zu arbeiten, wie es unter Unix ist? I.e. Ich möchte sehen, ob es etwas Ähnliches gibt: os.path.setos('Linux')

+0

Try 'os.path.abspath ('prj/vl')' – heinst

Antwort

4

os.path ist ein anderes Modul abhängig von Ihrem Betriebssystem. Wie documented in der os.path Dokumentation, können Sie explizit die Version für Unix-Pfade importieren:

import posixpath 

Die anderen Versionen sind ntpath für Windows-Pfade, macpath für alten Stil MacOS Pfade und os2emxpath für OS/2 EMX Pfade.

1

können Sie posixpath anstelle von os.path - eigentlich os.path verwendet entweder posixpath oder ntpath je nach System.

2

Da verschiedene Betriebssysteme unterschiedliche Pfadnamenskonventionen haben, gibt es mehrere Versionen dieses Moduls in der Python-Standardbibliothek. Das Modul os.path ist immer das Pfadmodul, das für das Betriebssystem, auf dem Python ausgeführt wird, geeignet und daher für lokale Pfade verwendbar ist. Sie können die einzelnen Module jedoch auch importieren und verwenden, wenn Sie einen Pfad bearbeiten möchten, der immer in einem der verschiedenen Formate vorliegt. Sie alle haben die gleiche Schnittstelle:

`posixpath` for UNIX-style paths 
`ntpath` for Windows paths 
`macpath` for old-style MacOS paths 
`os2emxpath` for OS/2 EMX paths 

Referenz: https://docs.python.org/2/library/os.path.html

+2

Diese Antwort ist 1: 1 aus https kopiert: // docs. Python.org/2/library/os.path.html, ich denke, es sollte – CherryDT

+0

sicher Ding zitiert werden. erledigt –

Verwandte Themen