开发者

Multiple Tries in Try/Except Block

开发者 https://www.devze.com 2023-02-07 15:48 出处:网络
I have some python code where I can accept two different file names, so I would like to do something like try the first file name, if there is an exception then try the second filename, if the second

I have some python code where I can accept two different file names, so I would like to do something like try the first file name, if there is an exception then try the second filename, if the second try fails, then raise the exception and handle the error.

So the basic logic is:

first try this:
   f = file(name1)
if not, then try this
   f = file(name2)
else
   error()

I'm pretty sure I could do this with nested try/except blocks, but that doesn't seem like a good solution. Also, if I want to scale up to something like 20 different filenames, then nesting the try/except blo开发者_StackOverflow社区cks would get really messy.

Thanks!


You could simply use a for loop:

for name in filenames:
    try:
        f = open(name)
        break
    except IOError:
        pass
else:
    # error


You can do a loop of try ... except like:

for f_name in names:
    try:
        f = open(f_name, 'r')
        # do something
        break # Exit from the loop if you reached this point
    except:
        print 'error, going to try the next one'
0

精彩评论

暂无评论...
验证码 换一张
取 消