try/except with multiple files
Stargaming
stargaming at gmail.com
Fri Jun 22 11:45:51 EDT 2007
Matimus wrote:
> It depends, what are you going to do if there is an exception? If you
> are just going to exit the program, then that works fine. If you are
> going to just skip that file, then the above wont work. If you are
> going to return to some other state in your program, but abort the
> file opening, you might want to close any files that were opened. The
> closing can be taken care if in the except block, but you will have to
> know which ones opened successfully.
>
> In general I would do something like this for multiple files:
>
> [code]
> filenames = ["fname1","fname2","fname3"]
> for fn in filenames:
> try:
> f = open(fn)
> except IOError:
> # handle exception
> #do something with f
> [/code]
>
> But, that might not work for you if the files aren't homogeneous (each
> have similar contents). If the files have distinctly different
> purposes, I would just wrap them each in their own try/except block.
>
> I rambled a bit there, but I hope it helps.
>
> Matt
>
Heh, reminded me of http://worsethanfailure.com/Articles/Code-Reuse.aspx
at the first glance. SCNR.
To add something on-topic, I'd just stick with the "one try for all
files" option if your need is really "Try to open all files, if *at
least one* of them fails, recover/abort/foobar/...".
More information about the Python-list
mailing list