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

How to pass an argument to a python program open in IDLE?

P: n/a
Hello,

I have open a Python program in the IDLE, but when I select the "run
module" under "run" menu, it
does not allow me to pass an argument to my Python program!
How do you pass an argument to a Python program under the IDLE? Thanks for
you help!

Nov 15 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a


On Nov 15, 7:56 am, tony...@philips.com wrote:
Hello,

I have open a Python program in the IDLE, but when I select the "run
module" under "run" menu, it
does not allow me to pass an argument to my Python program!
How do you pass an argument to a Python program under the IDLE? Thanks for
you help!
I'm using Python on an old Mac with the IDE. I think my solution would
work.

opt_parser = OptionParser()

def myfunc(argstring):
(self.options,self.args) =
sub_opt_parser.parse_args(argstring.split())
f not self.args: self.args = "[default arguments]".split()
...

if __name__=="__main__":
myfunc(argstring)
This means editing the file every time. Since I'm on a Mac, I can also
use:
if __name__=="__main__":
from EasyDialogs import AskString
args = AskString('Options and Arguments')

myfunc(args)

I'm not sure how easy this is to implement on other platforms

Josh English
Jo**************@gmail.com
http://www.spiritone.com/~english

Nov 15 '06 #2

P: n/a
Hello Josh,

Thanks for the reply. But I am not sure I understand your reply, may be
I need to explain my problem a bit more. I have a Python script which
needs an input argument to run.
e.g. python myscript.py xilinx. which run fine.

My problem is this: When I start IDLE GUI, then I open my script with
the edit window. (i.e.
File -open). I run my script under the edit window using run -run
module or F5. But IDLE does not allow me to input the argument to my
script, i.e. IDLE runs without prompting for the argument, then my
script fails. I wonder how can I pass the argument to my script under
IDLE?

Tony Ha.

Jo**************@gmail.com wrote:
On Nov 15, 7:56 am, tony...@philips.com wrote:
Hello,

I have open a Python program in the IDLE, but when I select the "run
module" under "run" menu, it
does not allow me to pass an argument to my Python program!
How do you pass an argument to a Python program under the IDLE? Thanks for
you help!

I'm using Python on an old Mac with the IDE. I think my solution would
work.

opt_parser = OptionParser()

def myfunc(argstring):
(self.options,self.args) =
sub_opt_parser.parse_args(argstring.split())
f not self.args: self.args = "[default arguments]".split()
...

if __name__=="__main__":
myfunc(argstring)
This means editing the file every time. Since I'm on a Mac, I can also
use:
if __name__=="__main__":
from EasyDialogs import AskString
args = AskString('Options and Arguments')

myfunc(args)

I'm not sure how easy this is to implement on other platforms

Josh English
Jo**************@gmail.com
http://www.spiritone.com/~english
Nov 17 '06 #3

P: n/a

TonyHa wrote:
Hello Josh,

Thanks for the reply. But I am not sure I understand your reply, may be
I need to explain my problem a bit more. I have a Python script which
needs an input argument to run.
e.g. python myscript.py xilinx. which run fine.

My problem is this: When I start IDLE GUI, then I open my script with
the edit window. (i.e.
File -open). I run my script under the edit window using run -run
module or F5. But IDLE does not allow me to input the argument to my
script, i.e. IDLE runs without prompting for the argument, then my
script fails. I wonder how can I pass the argument to my script under
IDLE?

Tony Ha.
Just check the number of arguments and prompt if the argument is
missing:

import sys

if __name__ == '__main__':
numArgs = len(sys.argv)
if numArgs == 1:
myArg = raw_input('please supply missing argument: ')
else:
myArg = sys.argv[1]

print 'argument : %s' % myArg

Nov 17 '06 #4

P: n/a
"TonyHa" wrote:
My problem is this: When I start IDLE GUI, then I open my script with
the edit window. (i.e.
File -open). I run my script under the edit window using run -run
module or F5. But IDLE does not allow me to input the argument to my
script, i.e. IDLE runs without prompting for the argument, then my
script fails. I wonder how can I pass the argument to my script under
IDLE?
one would think that there would be a "set argument" command somewhere, but I
sure couldn't find it.

as a workaround, to help with testing, you can simply do:

import sys

if not sys.argv[1:]:
sys.argv += ["argument1", "argument2", "argument3"]

at the top of your program.

</F>

Nov 17 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.