ZIP files
Thomas Heller
theller at python.net
Fri Nov 12 06:03:23 EST 2004
More information about the Python-list mailing list
Fri Nov 12 06:03:23 EST 2004
- Previous message (by thread): ZIP files
- Next message (by thread): ZIP files
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
aleaxit at yahoo.com (Alex Martelli) writes: > Michael Foord <fuzzyman at gmail.com> wrote: > >> Hmmm... does this mean that >> >> open(filename, 'w').write(filedata) >> >> is unsafe ? It's so much more convenient when the object is only going >> to be used for the single action. > > It's not exactly unsafe -- but you do risk, depending on what > implementation of Python you're dealing with, that the file object will > just stay open until some unknown time in the future (no later than the > end of your program's run;-). This may potentially lead to problems if > your program is long-running or open lots of files, etc. > > def write_data(filename, data, flags='w'): > fileobject = open(filename, flags) > try: fileobject.write(data) > finally: fileobject.close() > > needs to be coded once, and then makes the operation just as convenient > as doing it inline... I'd suggest to expand this a bit, and make it working correctly on windows too, where binary files must be opened with the 'b' flag: def _write_data(filename, data, flags): fileobject = open(filename, flags) try: fileobject.write(data) finally: fileobject.close() def write_data(filename, data, flags="wb"): _write_data(filename, data, flags) def write_text(filename, text, flags="w"): _write_data(filename, data, flags) plus the corresponding read_data() and read_text() functions. Hm, add an encoding for unicode, maybe... Cookbook recipe, or standard lib? Thomas
- Previous message (by thread): ZIP files
- Next message (by thread): ZIP files
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list