How to eval a file

Alex Martelli aleax at aleax.it
Mon Feb 24 09:22:49 CET 2003


Donnal Walter wrote:
   ...
>> log     /error.txt
>> splash  /welcome.png
>> icon    ./prism.ico
>> login   C:/prism/user.dbm
>> cabinet C:/prism/patient.dbm
>> 
>> and you parse it with:
>> 
>>     lines = [ line.split() for line in open(filename) ]
>>     self.__dict__.update(dict(lines))
>> 
>> or something like that?
> 
> Ah, yes. I like that much better. I may also let Björn talk me into
> trying out the shlex module as well. Thanks.

shlex is good if you need it, but for this specific use you
can probably do without it.  The keys must be identifiers,
given the use you make of them, so you do not need to cater
for their being quoted.  If you do need to allow spaces in
the filenames, then the quoting that shlex affords may indeed
be the soundest way, though (because line.split(None, 1) would
not remove the trailing \n the way line.split() does...].


Alex





More information about the Python-list mailing list