Movatterモバイル変換


[0]ホーム

URL:


Resuming in exception handling

Nathaniel Grayn8gray at caltech.edu.is.my.e-mail.address
Tue Apr 17 03:58:45 EDT 2001


Lucas Vogel wrote:> I get an OSError about a file permission on one of the files it tries> to delete. When it gets that exception I want it to simply move on to> the next file. How do I do that?The right way to do this is to wrap just the os.remove() in the try block.  Here's the new version:<code snippet>import os, glob #place all LW*.txt files in list and kill them LWPath = 'C:\\LAND WARRIOR 1.0'flist = glob.glob( LWPath + '\\LW*.txt')for fname in flist:    print 'removing ' + fname     try:        os.remove(fname)    except OSError:        print('skipping ' + fname)        # Next line best avoided        # flist.remove(fname)         # Modifying a container while iterating over it can get messy        # (see below)del flist</code snippet>Here's a simple example of why not to delete from a container that you're iterating over unless you're sure you know what you're doing:<code>jim = ['one', 'two', 'three', 'four', 'five']for i in jim:  try:    print i    if i == 'three': raise 'badmojo!'  except:    print 'skipping', i    jim.remove(i)</code>The program's output is:onetwothreeskipping threefiveCheers,-n8-- _.~'^`~._.~'^`~._.~'^`~._.~'^`~._.~'^`~._             Nathaniel Gray   California Institute of Technology     Computation and Neural Systems     n8gray <at> caltech <dot> edu_.~'^`~._.~'^`~._.~'^`~._.~'^`~._.~'^`~._


More information about the Python-listmailing list

[8]ページ先頭

©2009-2025 Movatter.jp