Movatterモバイル変換
[0]ホーム
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]ページ先頭