如何使 python 脚本在带参数和不带参数(默认参数)的情况下工作?

问题描述 投票:0回答:2

我正在尝试让 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
错误消息。

有人知道完成这项任务的良好自动化方法吗?我将不胜感激。

python python-2.7 argparse
2个回答
4
投票

像这样使用

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。


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)
© www.soinside.com 2019 - 2024. All rights reserved.