Need help converting text to csv format
MRAB
google at mrabarnett.plus.com
Fri Nov 21 12:26:49 EST 2008
Tim Golden wrote:
> Joe Strout wrote:
>> A follow-up question here... is it really necessary to close things
>> like files in Python? I've been slumming it in the REALbasic
>> community for the last decade, where you generally don't worry about
>> such things, as any object that represents something "open" will
>> automatically "close" itself when it dies (and since a closed object
>> in those cases is useless, I'd rather not have it around after it's
>> closed anyway). Is the same true in Python, or do we need to
>> explicitly close things?
>
>
> Implementation dependent. (Because it depends on what kind
> of garbage collection or object finalisation happens). Like
> most people, I imagine, in ad-hoc code I'll just do things like:
>
> <code
> import csv
>
> writer = csv.writer (open ("data.csv", "wb"))
> writer.writerow (['blah', blah'])
>
> </code>
>
> If I exit the interpreter here, I'm pretty much safe.
> But if I add os.startfile ("data.csv"), I'll likely
> get nothing or a file lock.
>
> I believe that in other implementations -- Jython,
> for example -- you cannot rely on the file closing
> itself.
>
The file will be closed automatically when the file object is
garbage-collected.
CPython uses reference-counting, so the file object is garbage-collected
as soon as there are no references to it.
Jython (and IronPython?) are garbage-collected in the background, so the
file object is garbage-collected at some point (and you don't know when
that will be!) when there are no longer any references to it.
> In general in posting public code, especially to
> newcomers, I make the effort to use a try-finally
> or a with statement.
>
More information about the Python-list
mailing list