如何使 python 脚本在有参数和无参数(默认参数)的情况下工作?
How to make a python script work with and without arguments (default arguments)?
我正在尝试让 Python 脚本工作,无论参数是否已传递。
目标是让脚本像 "MyPython.py" 和 "MyPython.py 5" 一样正常工作。如果未传递任何参数,则参数应为 0。
默认情况下,变量 imported_number
应为 0,但如果检测到参数,则它应采用用户传递的任何数字。
import argparse
imported_number=0
parser = argparse.ArgumentParser()
parser.add_argument("opt_number", type=int, help="Provide a number please")
args = parser.parse_args()
if args.opt_number > 0:
imported_number=args.opt_number
print "You provided me with the number " + imported_number
print "You provided me with the number {}".format(args.opt_number)
else:
print "You did not provide me with any number. Taking the default value, which is " + imported_number
不幸的是,我收到 error: too few arguments
错误消息。
有谁知道完成这项任务的好的自动化方法吗?非常感谢。
像这样使用 nargs
、default
、const
:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("opt_number", type=int, help="Provide a number please",
nargs='?', default=0, const=0)
args = parser.parse_args()
print(args)
如果没有提供参数,您的 opt_number 将被初始化为 0。
您可以使您的脚本成为一个函数,接受并传递给它的参数。
import sys
def your_function(imported_number=0):
#your code
if __name__=='__main__':
try:
imported_number=sys.argv[1]
except:
pass
your_function(imported_number)
我正在尝试让 Python 脚本工作,无论参数是否已传递。
目标是让脚本像 "MyPython.py" 和 "MyPython.py 5" 一样正常工作。如果未传递任何参数,则参数应为 0。
默认情况下,变量 imported_number
应为 0,但如果检测到参数,则它应采用用户传递的任何数字。
import argparse
imported_number=0
parser = argparse.ArgumentParser()
parser.add_argument("opt_number", type=int, help="Provide a number please")
args = parser.parse_args()
if args.opt_number > 0:
imported_number=args.opt_number
print "You provided me with the number " + imported_number
print "You provided me with the number {}".format(args.opt_number)
else:
print "You did not provide me with any number. Taking the default value, which is " + imported_number
不幸的是,我收到 error: too few arguments
错误消息。
有谁知道完成这项任务的好的自动化方法吗?非常感谢。
像这样使用 nargs
、default
、const
:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("opt_number", type=int, help="Provide a number please",
nargs='?', default=0, const=0)
args = parser.parse_args()
print(args)
如果没有提供参数,您的 opt_number 将被初始化为 0。
您可以使您的脚本成为一个函数,接受并传递给它的参数。
import sys
def your_function(imported_number=0):
#your code
if __name__=='__main__':
try:
imported_number=sys.argv[1]
except:
pass
your_function(imported_number)