On Tue, 14 Sep 2010 05:12:12 am Brian Jones wrote: > Thanks for the replies so far. One thing that's probably relevant: > once a directory is created, I can expect to write a couple of > hundred files to it, so doing a 'try os.makedirs' right off the bat > strikes me as coding for the *least* common case instead of the > *most* common (which is that the directory exists and the file write > succeeds). If this were a one-off file write.... well then things get > easier, but I'd like to avoid attempting a makedirs 100 times when 99 > of those times I know it'll give me an error.
Why? Do you know how much time it will save? The extra scaffolding code, setting up the try...except block, takes time too. Unless you've profiled the code, you have no idea how wasteful 100 calls to makedirs will be, compared to the alternatives of: look to see if the directory exists 100 times or setting up 100 extra try...except blocks. In any case, the time it takes to call makedirs() unnecessarily will probably be so small compared to the time you actually spending writing data to disk that you won't notice -- who cares if you reduce the time to save 100 files from 1.302 seconds to 1.293 seconds? But don't believe me, because I'm only guessing. Write both versions and time them with *realistic* amounts of data. If you normally write 100 five gigabyte files over a network share, why are we even having this conversation??? *wink* Write for the reader (that would be you, in six months time) first, and then only optimize when you have to. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor