Antworten:
Sie können immer verwenden:
'C:/mydir'
Dies funktioniert sowohl unter Linux als auch unter Windows. Andere Möglichkeit ist
'C:\\mydir'
Wenn Sie Probleme mit einigen Namen haben, können Sie auch rohe String-Literale ausprobieren:
r'C:\mydir'
Es wird jedoch empfohlen, die os.path
Modulfunktionen zu verwenden, mit denen immer die richtige Konfiguration für Ihr Betriebssystem ausgewählt wird:
os.path.join(mydir, myfile)
Ab Python 3.4 können Sie auch das pathlib- Modul verwenden. Dies ist gleichbedeutend mit dem oben Gesagten:
pathlib.Path(mydir, myfile)
oder
pathlib.Path(mydir) / myfile
Verwenden Sie das os.path
Modul.
os.path.join( "C:", "meshes", "as" )
Oder verwenden Sie rohe Zeichenfolgen
r"C:\meshes\as"
Ich würde auch empfehlen, keine Leerzeichen im Pfad oder Dateinamen. Und Sie könnten doppelte Backslashes in Ihren Saiten verwenden.
"C:\\meshes\\as.jpg"
"C:\"
als ersten Eintrag zu setzen? Beeinträchtigt das die Sauberkeit der Verwendung join
?
"C:\"
in die Mitte des Dateinamens setzen. Außerdem können Sie os.path.normpath
vor oder nach einem Join verwenden, um sicherzustellen, dass der Pfad ordnungsgemäß gedruckt wird.
os.path.join( "C:\\", "meshes", "as" )
Ja, \
in Python bezeichnet String-Literale den Beginn einer Escape-Sequenz. In Ihrem Pfad haben Sie eine gültige Escape-Sequenz mit zwei Zeichen \a
, die zu einem Zeichen zusammengefasst ist, das ASCII Bell ist :
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
Andere gebräuchliche Escape-Sequenzen sind \t
(Tab), \n
(Zeilenvorschub), \r
(Wagenrücklauf):
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
Wie Sie sehen können, wurden in all diesen Beispielen der Backslash und das nächste Zeichen im Literal zu einem einzigen Zeichen in der letzten Zeichenfolge zusammengefasst. Die vollständige Liste der Escape-Sequenzen von Python finden Sie hier .
Es gibt verschiedene Möglichkeiten, damit umzugehen:
Python verarbeitet keine Escape-Sequenzen in Zeichenfolgenliteralen mit dem Präfix r
oderR
:
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Python unter Windows sollte auch Schrägstriche verarbeiten.
Sie könnten verwenden os.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
... oder das neuere pathlib
Modul
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
Unter Windows können Sie /
in Ihrem Pfad genau wie Linux oder macOS an allen Stellen verwenden , solange Sie PowerShell als Befehlszeilenschnittstelle verwenden. Es kommt vorinstalliert auf Windows und unterstützt viele Linux - Befehle wie ls
Befehl.
Wenn Sie die Windows-Eingabeaufforderung verwenden (die angezeigt wird, wenn Sie das cmd
Windows-Startmenü eingeben), müssen Sie Pfade angeben, die sich \
direkt darin befinden. Sie können /
Pfade an allen anderen Stellen verwenden (Code-Editor, interaktiver Python-Modus usw.).
Wenn Sie einen Windows-Pfad aus einer anderen Quelle (z. B. dem Datei-Explorer) einfügen möchten, können Sie dies per input()
Aufruf in der Python-Konsole tun :
>>> input()
D:\EP\stuff\1111\this_is_a_long_path\you_dont_want\to_type\or_edit_by_hand
'D:\\EP\\stuff\\1111\\this_is_a_long_path\\you_dont_want\\to_type\\or_edit_by_hand'
Dann kopieren Sie einfach das Ergebnis