Yanıtlar:
her zaman kullanabilirsiniz:
'C:/mydir'
bu hem linux hem de pencerelerde çalışır. Diğer olasılıklar
'C:\\mydir'
bazı isimlerle sorun yaşıyorsanız, ham dize değişmezlerini de deneyebilirsiniz:
r'C:\mydir'
ancak en iyi uygulama, os.path
işletim sisteminiz için her zaman doğru yapılandırmayı seçen modül işlevlerini kullanmaktır :
os.path.join(mydir, myfile)
Python 3.4'ten pathlib modülünü de kullanabilirsiniz . Bu yukarıdakilere eşittir:
pathlib.Path(mydir, myfile)
veya
pathlib.Path(mydir) / myfile
os.path
Modülü kullanın .
os.path.join( "C:", "meshes", "as" )
Veya ham dizeler kullanın
r"C:\meshes\as"
Ayrıca yol veya dosya adlarında boşluk önermem. Ve dizelerinizde çift ters eğik çizgi kullanabilirsiniz.
"C:\\meshes\\as.jpg"
"C:\"
İlk giriş olarak koymak için yapılacak doğru şey midir? Bu, kullanımın temizliğini biraz bozuyor join
mu?
"C:\"
dosya adının ortasına koymak istemezsiniz . Ayrıca, os.path.normpath
yolun iyi yazdırıldığından emin olmak için birleştirme işleminden önce veya sonra kullanabilirsiniz .
os.path.join( "C:\\", "meshes", "as" )
Evet, \
Python string değişmezlerinde bir kaçış dizisinin başlangıcını belirtir. Yolunuzda , ASCII Bell olan bir karaktere \a
daraltılmış geçerli bir iki karakterli kaçış diziniz var :
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
Diğer yaygın kaçış dizileri \t
(sekme), \n
(satır besleme), \r
(satır başı):
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
Gördüğünüz gibi, tüm bu örneklerde, ters eğik çizgi ve değişmezdeki bir sonraki karakter, son dizede tek bir karakter oluşturmak için birlikte gruplandırıldı. Python'un kaçış dizilerinin tam listesi burada .
Bununla başa çıkmanın çeşitli yolları vardır:
Python, r
veya ile başlayan dize değişmezlerinde kaçış dizilerini işlemezR
:
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Windows'daki Python, eğik çizgileri de ele almalıdır.
Kullanabilirsin os.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
... veya daha yeni pathlib
modül
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
Windows'da, komut satırı arabiriminiz olarak PowerShell kullandığınız sürece/
yolunuzda Linux veya macOS gibi her yerde kullanabilirsiniz . Windows'a önceden yüklenmiş olarak gelir ve komut gibi birçok Linux komutunu destekler ls
.
Windows Komut İstemi'ni ( cmd
Windows Başlat Menüsüne yazdığınızda görünen ) kullanırsanız, \
hemen içinde bulunan yolları belirtmeniz gerekir. Sen kullanabilirsiniz /
tüm diğer yerlerde yolları (kod editörü, Python etkileşimli mod, vs.).
Windows yolunu başka bir kaynaktan (örneğin, Dosya Gezgini) yapıştırmak istiyorsanız - bunu input()
python konsolundaki çağrı ile yapabilirsiniz :
>>> 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'
Sonra sonucu kopyalayın