2017-01-31 13 views
0

ディレクトリを開くときに問題が発生しました。ディレクトリを開くときに例外が発生する

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

すべては限り名前sdirに応じてディレクトリがあるとして正常に動作します:私のすべてのディレクトリをループし、私は中を歩きます。それが存在しない場合、次のエラーがスローされます。

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

私はb_aという名前のディレクトリを持っているが。したがって、ijを私のコードに入れ替えたいと思っています。私は、a_bディレクトリがない場合 - >スワップab - >b_aディレクトリに行くことを意味します。

os.chdir("/home/Documents/test/"+sdir)を使用して例外を発生させるにはどうすればよいですか?

+1

ブロックを除き、試しにそれを入れてください。ブロックを除いて交換してください。それでも失敗した場合は、ブロック以外のブロックを除いてもう1つのtryブロックを使用して処理してください。 – MYGz

+0

@monicaコードの書式設定にPEP8を使用してください –

答えて

1

まず、私は、フォルダ構造を作成するために、os.path.joinを使用することをお勧めします。それを

import os 

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

してからちょうどtry

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 
関連する問題