我可以这样调用我的脚本:
python D:\myscript.py 60
在脚本中,我可以做到:
arg = sys.argv[1]
foo(arg)
但是我如何测试参数是否已在命令行调用中输入?我需要做这样的事情:
if isset(sys.argv[1]):
foo(sys.argv[1])
else:
print "You must set argument!!!"
答案 0 :(得分:43)
不要使用sys.argv
来处理命令行界面;有一个模块可以做到这一点:argparse
。
您可以将required=True
传递给add_argument
。
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument("foo", ..., required=True)
parser.parse_args()
答案 1 :(得分:40)
len(sys.argv) > 1
答案 2 :(得分:22)
if len(sys.argv) < 2:
print "You must set argument!!!"
答案 3 :(得分:6)
答案 4 :(得分:3)
if len(sys.argv) == 1:
print('no arguments passed')
sys.exit()
这将检查是否传递了任何参数。如果没有参数,它将退出脚本,而不运行其余脚本。
答案 5 :(得分:2)
for arg in sys.argv:
print (arg)
#print cli arguments
您可以使用它将参数存储在列表中并使用它们。比使用它们更安全的方式sys.argv[n]
如果没有给出参数,则没有问题
答案 6 :(得分:0)
我使用optparse module但是我想因为我使用的是2.5你可以使用argparse,如果你使用2.7或更高版本的Alex建议
答案 7 :(得分:-7)
if(sys.argv[1]):
应该可以正常工作,如果没有参数,sys.argv [1]将(应该)为null