打开目录时创建异常

时间:2017-01-31 06:00:22

标签: python exception-handling

打开目录时遇到问题。我遍历所有目录,然后走进去:

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]没有这样的文件或目录:/ home / Documents / test / a_b

但是我有一个名为b_a的目录。因此,我想在代码中交换ij。我的意思是如果没有a_b目录 - >交换ab - >进入b_a目录。

如何使用os.chdir("/home/Documents/test/"+sdir)执行例外处理?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

try:
    os.chdir("/home/Documents/test"+sdir) 
except OSError:
    #your desired behaviour when the try block fails