2017-01-31 1 views
0

Ich stieß auf ein Problem beim Öffnen eines Verzeichnisses. I Schleife über alle Verzeichnisse und ich gehe in:Erstellen einer Ausnahme beim Öffnen eines Verzeichnisses

for i in var1: 
     for j in var2: 
       if i == j: continue 
         sdir = i+'_'+j 
         os.chdir("/home/Documents/test"+sdir) 

Alles funktioniert gut, solange es ein Verzeichnis ist nach dem Namen sdir. Wenn es nicht vorhanden ist, wird der folgende Fehler ausgelöst:

OSError: [Errno 2] No such file or directory: /home/Documents/test/a_b

Allerdings habe ich ein Verzeichnis b_a benannt. Deshalb möchte ich i und j in meinem Code austauschen. Ich meine, wenn es keine a_b Verzeichnis -> tauschen a und b -> gehen Sie in die b_a Verzeichnis. Wie kann ich eine Ausnahme mit os.chdir("/home/Documents/test/"+sdir) machen?

+1

Legen Sie es in Versuch außer Block. Und eintauschen außer Block. Und benutze noch einen weiteren Versuch außer block in except block to handle wenn auch das scheitert. – MYGz

+0

@monica verwenden Sie bitte PEP8 zum Formatieren Ihres Codes –

Antwort

1

Zuerst möchte ich mit os.path.join empfehlen die Ordnerstruktur zu erstellen:

import os 

base = os.path.join('/home', 'Documents', 'test') 

und dann nur try es:

try: 
    os.chdir(os.path.join(base, i+'_'+j)) 
except OSError: 
    try: 
     os.chdir(os.path.join(base, j+'_'+i)) 
    except OSError: 
     print('total fail', i, j) 
0
try: 
    os.chdir("/home/Documents/test"+sdir) 
except OSError: 
    #your desired behaviour when the try block fails 
Verwandte Themen