2010-11-05 19 views
7

Bir yolun geçerli olup olmadığını kontrol etmenin kolay bir yolu var mı? Dosya şu an var olmak zorunda değil, var olup olmadığını merak ediyorum.Python'da bir yolun geçerli olup olmadığını kontrol edin

benim şimdiki versiyonu şudur: Ben sadece yol these karakterlerden herhangi içerip içermediğini kontrol düşünüyorum

try: 
    f = open(path) 
except: 
    <path invalid> 

.

+0

Belki 'os.path.isabs (yol)'? – helpermethod

+2

Olası kopyası [Yolun hedefinde bir dosya oluşturmadan Python'da bir yolun geçerli olup olmadığını kontrol edin] (http://stackoverflow.com/questions/9532499/check-whether-a-path-is-valid-in-python) –

cevap

2

önce onu çalışılıyor Bunu yapmayı tavsiye, en iyi yoludur.

try: 
    open(filename, 'w') 
except OSError: 
    # handle error here 

Ben açıkça ve platform üzerinde deney bunu kullandığınız OSError, yakalamak alırsınız inanıyoruz.

Ayrıca aşağıda deneyebilirsiniz
+0

+ 1 olmayangastroözofageal-a-dosyasını-yollarına-ta en oluşturmak ve sadece referans için 'IOError verilmiştir: [Errno 22] geçersiz mod (w '') ya da dosya: ...' – bernie

+3

** Sorunlu Cevap. ** 'Dosyaadı' _not_ varsa, bu çözüm sessizce 0 bayt dosyası olarak oluşturur. (_Bu muhtemelen kötü bir dosyadır) Eğer dosya adı mevcut bir dosya ise, bu çözüm onu ​​0 baytlık bir dosyaya sessizce kırpır. (_Bu kesinlikle kötüydü) Eğer 'dosyaadı' varolan bir dizin ise, bu çözüm [bernie] tarafından tanımlanan istenen [Errno 22] 'IOError 'istisnasından farklılaştırılması gereken bir istisnayı ortaya çıkarır (https: // yukarıda stackoverflow.com/users/42346/bernie). (_Bu en azından can sıkıcı bir şeydir). Kısacası, muhtemelen bunu denemek istersiniz. –

0

:

import os 
if not os.path.exists(file_path): 
    print "Path of the file is Invalid" 
+2

Bu sadece bir dosyanın var olup olmadığını bildirir. Soru, özellikle bir yolun * geçerli olup olmadığına, yoksa var olup olmadığına dair sorular sormaktadır. Dosya varsa – aquavitae

+0

, o zaman onun geçerli bir yol naturaully ve – Vidz

+2

http://en.wikipedia.org/wiki/Affirming_the_consequent – aquavitae

İlgili konular