By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,996 Members | 1,343 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,996 IT Pros & Developers. It's quick & easy.

command-line args

P: n/a
What's the perfered method of passing command-line args throughout a
Python program given that globals don't seem to really exist? I thought
of writing them out to a python file and then importing them when
needed.. but that seems like it'd only work for a single process.. not
in instances where more than one user is running the program. There
isn't anything like a virtual file space that could be used for this?
Anyway to set a global variable?

Jul 18 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Michael wrote:
What's the perfered method of passing command-line args throughout a
Python program given that globals don't seem to really exist? I thought
of writing them out to a python file and then importing them when
needed.. but that seems like it'd only work for a single process.. not
in instances where more than one user is running the program. There
isn't anything like a virtual file space that could be used for this?
Anyway to set a global variable?


Create an empty module called "globals" and import that wherever
needed. Populate it with settings from the command-line parsing
stage. Get fancier and put defaults in there to begin with, and
override them only if specified in the command-line parsing
area. Flavour as needed...

(That's just one option, but in many ways the simplest. Some of
us also use a simple "bag" type of object which we pass around
as required, but that's more awkward with really large applications.)

-Peter
Jul 18 '05 #2

P: n/a
Create an empty module called "globals" and import that wherever
needed. Populate it with settings from the command-line parsing
stage. Get fancier and put defaults in there to begin with, and
override them only if specified in the command-line parsing
area. Flavour as needed...
What do you do about multiple processes (of the same program) running at
once? Save to /tmp/<pid>/globals.py or something like that?
(That's just one option, but in many ways the simplest. Some of
us also use a simple "bag" type of object which we pass around
as required, but that's more awkward with really large applications.)


I've done that before and yeh it is really a hassle with anything very
large.

Jul 18 '05 #3

P: n/a
Michael wrote:
What's the perfered method of passing command-line args throughout a
Python program given that globals don't seem to really exist? I thought
of writing them out to a python file and then importing them when
needed.. but that seems like it'd only work for a single process.. not
in instances where more than one user is running the program. There
isn't anything like a virtual file space that could be used for this?
Anyway to set a global variable?


If I may be so immodest, I have just released this as another way
to set program options:

http://www.tundraware.com/Software/tconfpy/

Keep your options in a text file with each option in the form:

option = value

Call tconfpy.ParseConfig("myconfigfile") and you'll get back
(among other things) a populated symbol table with each option as
one of the keys...

--
----------------------------------------------------------------------------
Tim Daneliuk tu****@tundraware.com
PGP Key: http://www.tundraware.com/PGP/
Jul 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.