Re: reading raw variables from file
- From: "Martin Blume" <mblume@xxxxxxxxx>
- Date: Fri, 30 Nov 2007 17:05:16 +0100
"Bruno Desthuilliers" schrieb
I have a file that might contain literal python
variable statements at every line. For example
the file info.dat looks like this:
users = ["Bob", "Jane"]
status = {1:"ok",2:users[0]}
the problem is I want to read this file and load
whatever variables written in it as normal python
variable statements so that when i read the file,
my users var will be ["Bob","Jane"] and my status
var will be {1:"ok",2:users[0]} .
Is there an easy way of doing this instead of
parsing the files and checking said types?
You might want to look at the eval, exec and execfile;
Or just import...
but bear in in mind Paddy's warning about security.
+10
If I have understood python naming scoping correctly,
doing
my_var="hello"
import stuff
print my_var
is not the same as
my_var="hello"
exec open("stuff.py").read()
print my_var
with stuff.py containing
my_var="bye"
I use this exec open("stuff.py").read() mechanism to set
values in my scripts: the script sets a useful default,
a command-line argument in the form a valid python program
may override it. Why bother with inventing or using another
mechanism when this is perfectly simple, easy and self-explaining?
The one and only thing against it is that a malicious user
can sneak in an os.system("cd / && rm -rf *").
IMHO. YMMV.
Martin
.
- References:
- reading raw variables from file
- From: Astan Chee
- Re: reading raw variables from file
- From: Martin Blume
- Re: reading raw variables from file
- From: Bruno Desthuilliers
- reading raw variables from file
- Prev by Date: Re: "Python" is not a good name, should rename to "Athon"
- Next by Date: Re: Yet another database question, please
- Previous by thread: Re: reading raw variables from file
- Next by thread: Re: reading raw variables from file
- Index(es):