Jawaban:
Anda dapat menggunakan selalu:
'C:/mydir'
ini berfungsi baik di linux dan windows. Kemungkinan lainnya adalah
'C:\\mydir'
jika Anda memiliki masalah dengan beberapa nama, Anda juga dapat mencoba literal string mentah:
r'C:\mydir'
namun praktik terbaiknya adalah menggunakan os.path
fungsi-fungsi modul yang selalu memilih konfigurasi yang benar untuk OS Anda:
os.path.join(mydir, myfile)
Dari python 3.4 Anda juga dapat menggunakan modul pathlib . Ini sama dengan di atas:
pathlib.Path(mydir, myfile)
atau
pathlib.Path(mydir) / myfile
Gunakan os.path
modul.
os.path.join( "C:", "meshes", "as" )
Atau gunakan string mentah
r"C:\meshes\as"
Saya juga merekomendasikan tidak ada spasi di path atau nama file. Dan Anda bisa menggunakan backslash ganda di string Anda.
"C:\\meshes\\as.jpg"
"C:\"
sebagai entri pertama? Apakah itu mengacaukan kebersihan penggunaan join
?
"C:\"
di tengah nama file. Selain itu, Anda dapat menggunakan os.path.normpath
sebelum atau setelah bergabung, untuk memastikan jalur dicetak dengan baik.
os.path.join( "C:\\", "meshes", "as" )
Ya, \
dalam string Python literal menunjukkan awal dari urutan pelarian. Di jalur Anda, Anda memiliki urutan melarikan diri dua karakter yang valid \a
, yang diciutkan menjadi satu karakter yaitu ASCII Bell :
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
Urutan pelarian umum lainnya termasuk \t
(tab), \n
(umpan baris), \r
(carriage return):
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
Seperti yang Anda lihat, dalam semua contoh ini garis miring terbalik dan karakter berikutnya dalam literal dikelompokkan bersama untuk membentuk satu karakter dalam string terakhir. Daftar lengkap urutan pelarian Python ada di sini .
Ada berbagai cara untuk mengatasinya:
Python tidak akan memproses urutan pelarian dalam string literal yang diawali dengan r
atauR
:
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Python di Windows juga harus menangani garis miring ke depan.
Anda bisa menggunakan os.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
... atau modul yang lebih barupathlib
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
Di Windows, Anda dapat menggunakan /
path seperti Linux atau macOS di semua tempat selama Anda menggunakan PowerShell sebagai antarmuka baris perintah. Muncul pra-instal pada Windows dan mendukung banyak perintah Linux seperti ls
perintah.
Jika Anda menggunakan Prompt Perintah Windows (yang muncul saat Anda mengetik cmd
di Menu Start Windows), Anda perlu menentukan jalur dengan \
tepat di dalamnya. Anda dapat menggunakan /
jalur di semua tempat lain (editor kode, mode interaktif Python, dll.).
Jika Anda ingin menempelkan lintasan windows dari sumber lain (misalnya, File Explorer) - Anda dapat melakukannya melalui input()
panggilan di konsol python:
>>> 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'
Kemudian salin hasilnya