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

T

tony.ha

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!
 
J

Joshua.R.English

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
(e-mail address removed)
http://www.spiritone.com/~english
 
T

TonyHa

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.

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
(e-mail address removed)
http://www.spiritone.com/~english
 
T

thunderfoot

TonyHa said:
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
 
F

Fredrik Lundh

TonyHa said:
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>
 

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

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,233
Latest member
AlyssaCrai

Latest Threads

Top