command-line args

M

Michael

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?
 
P

Peter Hansen

Michael said:
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
 
M

Michael

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/ said:
(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.
 
T

Tim Daneliuk

Michael said:
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...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top