Help - command line arguments

Hans Nowak wurmy at earthlink.net
Sun Dec 30 06:36:20 CET 2001


Steve Zatz wrote:
> 
> I am new to Python and although I am sure that the following is obvious I
> can't figure the following out or find an answer in any of the texts that I
> have access to.
> 
> My question is:  Can you run a script that takes command line arguments from
> within the Python shell or from the Python command line?
> 
> For example, something like:
> 
> test.py -a -b
> 
> runs fine from the *Windows XP* command prompt.
> 
> From the Python command line, I can do the following:
> 
> import test
> test.main()
> 
> which doesn't produce an exception but I can't figure out how to input the
> command line arguments.

You can mess around with sys.argv, but I'm not sure if that
is kosher...

>>> import sys
>>> sys.argv[0] = 'myself.py'
>>> sys.argv[1:] = '-x foo -y bla filename'.split()
>>> sys.argv
['myself.py', '-x', 'foo', '-y', 'bla', 'filename']
>>> 

If the program defines a "if __name__ == "__main__"
block, you're out of luck, though. import will not execute
the code in the block.

--Hans



More information about the Python-list mailing list