Suggest more finesse, please. I/O and sequences.

Peter Hansen peter at engcorp.com
Sat Mar 26 06:46:57 EST 2005


Qertoip wrote:
> Peter Hansen wrote:
>>--------------------------
>>import sys
>>
>>corpus = {}
>>for word in open(sys.argv[1]).read().split():
>>     corpus[word] = corpus.get( word, 0 ) + 1
>>
>>words = reversed(sorted(data[::-1] for data in corpus.iteritems()))
>>
>>open(sys.argv[2], 'w').writelines('%7d : %s\n' % data for data in words)
>>--------------------------
> 
> Is the file automatically closed in both cases?

Yes.  Either as soon as the file object has no more
references to it (with CPython), or as soon as the
application terminates or the garbage collection
executes to reclaim the objects (Jython, IronPython,
and any other Pythons that don't use reference
counting).

Either way, for a small script, it's safe.

-Peter



More information about the Python-list mailing list