2010-06-01 22 views
50

Windows dizinini temsil etmenin en iyi yolu nedir, örneğin "C: \ meshes \ as"? Bir betiği değiştirmeye çalışıyorum ama hiç işe yaramıyor çünkü dizini doğru olarak göremiyorum çünkü '\' kaçış karakteri gibi davranıyor sanırım?Python'da Windows yolu

cevap

89

her zaman kullanabilirsiniz:

'C:/mydir' 

bu linux ve pencerelerde hem çalışır. Diğer olasılık bazı isimlerle problemleriniz olursa da çiğ dizeleri deneyebilirsiniz

'C:\\mydir' 

geçerli:

r'C:\mydir' 

ancak en iyi yöntem her zaman için doğru yapılandırmayı seçmek os.path modül fonksiyonlarını kullanmak sizin OS:

os.path.join(mydir, myfile) 
+0

Teşekkürler, '/' iyi çalıştı, ama diğer ipuçları takdir edilmektedir. – Gareth

+2

@Gareth, çok tembel ve genellikle '/' kullanarak kendimi buldum. Ancak uzun vadede os.path kullanımı daha uygundur. Ayrıca, mydir ve myfile öğelerini kolayca değiştirebileceğiniz değişkenler olarak kullanmanıza da olanak tanır. – joaquin

+7

Ham dizelere dikkat etmeniz gereken tek şey, \ –

13

os.path modülünü kullanın.

os.path.join("C:", "meshes", "as") 

Veya kullanmak ham dizeleri

r"C:\meshes\as" 
+6

os.path.join göreli yollar bile inci izin verilir beri, bir bileşen, bir sürücü harfi olduğu zaman beklediğiniz gibi davranabilir değil tr. (İlk satırın sonucu 'C: Windows'ta mesh'tir.) –

+0

@ dash-tom-bang'ın yorumu gerçekten önemlidir. İlk giriş olarak "C: \" koymak için doğru olan şey nedir? Bu, 'join' kullanmanın temizliğini bozuyor mu? –

+1

@ JackO'Connor bunu yapıyorum. Dosya adının ortasında "C: \" ifadesini koymak istemezsiniz. Ayrıca, yolun güzel bir şekilde yazdırıldığından emin olmak için birleşimden önce veya sonra 'os.path.normpath' kullanabilirsiniz. – Agostino