python se il file non esiste, non riesce

quindi ho un ciclo che controlla la cartella se contiene *.file zip

for file in glob.glob( os.path.join(rootdir, '*.zip')):
        print "zip", file
        #Check if file does not exist
        if not os.path.exists(file):
            print "No files"
            #return
        else:
            some code

Ora se il file esiste, il resto funziona, ma se non c’è il file zip stampa non succede

Qualche suggerimento??
Grazie

  • glob.glob restituisce solo un file che non esiste che cosa stai cercando di fare il test se il file esiste ?
  • “file di stampa non succede”? Ci sono due print dichiarazioni. Puoi essere più specifico?
InformationsquelleAutor Yebach | 2011-09-14

 

4 Replies
  1. 2

    Se non c’è il file zip in una cartella, il ciclo non viene mai eseguito.

    Come

    for i in []:
        print "Hello"

    non stampa nulla, perché non ci sono elementi per iterare.

    Se avete bisogno di questo messaggio di errore, è possibile eseguire questa operazione:

    filelist = glob.glob(os.path.join(rootdir, '*.zip'))
    if filelist:
        for f in filelist:
            # some code
    else:
        print "No files"
    • Grazie.Questa è una grande soluzione
  2. 2

    Se non ci sono file zip poi si sono iterare su un elenco vuoto, provare qualcosa di simile a questo:

    files = glob.glob( os.path.join(rootdir, '*.zip'))
    if len(files) != 0:
        for file in files:
            print "zip", file
            #Check if file does not exist
            if not os.path.exists(file):
                print file, "does not exist"
                #return
            else:
                some code
    else:
        print "No files"
  3. 0

    Il glob() file restituisce tutte le corrispondenze trovate. Se non trova corrispondenza con il modello di fornire, quindi restituisce la lista vuota: []. Questo è diverso da quello che la shell glob schemi! Nella maggior parte dei gusci, foo* quando non ci sono file di avvio con foo* vi basta dare la parola foo* al comando; ma non è quello che glob() fa.

  4. 0

    I file se non esiste, allora il ciclo non funziona affatto. Il test di os.percorso.esiste(file) sarà sempre vero (a meno che altri processi di eliminazione di file, come si esegue il loop), perché altrimenti, glob non elenco è come un file.

    files = glob.glob( os.path.join(rootdir, '*.zip'))
    for file in files:
            print "zip", file
    if len(files) == 0:
            print "no files"

Lascia un commento