2010-11-05 16 views
7

Esiste un modo semplice per verificare se un percorso è valido? Il file non deve esistere ora, mi chiedo se potrebbe esistere.Verificare se un percorso è valido in Python

mia versione attuale è questa:

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

Sto pensando semplicemente controllando se il percorso contiene uno dei these caratteri.

+0

Forse 'os.path.isabs (percorso)'? – helpermethod

+2

Possibile duplicato di [Verificare se un percorso è valido in Python senza creare un file sulla destinazione del percorso] (http://stackoverflow.com/questions/9532499/check-whether-a-path-is-valid-in-python -non crea-un-file-at-the-paths-ta) –

risposta

2

Cercare di farlo è il modo migliore, consiglio di farlo.

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

credo si otterrà OSError, cattura che in modo esplicito, e il test sulla piattaforma che si sta utilizzando questo su.

+0

+1 e solo per riferimento è 'IOError: [Errno 22] modo non valido ('w') o nomefile: ...' – bernie

+3

** Problematico risposta. ** Se 'filename' esiste _non_ esiste, questa soluzione lo crea silenziosamente come un file a 0 byte. (Probabilmente è male.) Se 'filename' è un file esistente, questa soluzione la tronca silenziosamente in un file da 0 byte. (_Questo è decisamente cattivo._) Se 'filename' è una directory esistente, questa soluzione solleva un'eccezione che dovrà essere differenziata dall'eccezione' [Errno 22] '' IOError' descritta da [bernie] (https: // stackoverflow.com/users/42346/bernie) sopra. (_Questo è almeno fastidioso.) In breve, probabilmente non vuoi provare questo. –

0

si può provare anche il seguito:

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

Questo indica solo se esiste un file. La domanda specifica in particolare se un percorso è * valido *, non se esiste. – aquavitae

+0

Se il file esiste, allora è un percorso valido nativamente e esiste – Vidz

+2

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

Problemi correlati