无论何时传递参数,我都试图让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
错误消息。
有没有人知道完成此任务的好方法和自动方法?我很感激。
答案 0 :(得分:3)
使用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.
答案 1 :(得分:3)
您可以使脚本成为接受和传递给它的参数的函数。
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)