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.pathiş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.pathModü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 joinmu?
"C:\"dosya adının ortasına koymak istemezsiniz . Ayrıca, os.path.normpathyolun 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 \adaraltı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, rveya 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\asWindows'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 pathlibmodü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 ( cmdWindows 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