这是我的剧本
def main(argv):
if len(sys.argv)>1:
for x in sys.argv:
build(x)
if __name__ == "__main__":
main(sys.argv)
所以从命令行我写python myscript.py commandlineargument
我希望它跳过myscript.py
,只需运行commandlineargument
到commandlineargument(n)
所以我理解我的for循环没有考虑到这一点,但我该怎么做呢?
答案 0 :(得分:18)
由于sys.argv是一个列表,您可以使用切片sys.argv[1:]
:
def main(argv):
for x in argv[1:]:
build(x)
if __name__ == "__main__":
main(sys.argv)
但是,如果你只能有一个脚本参数,只需按索引获取它:sys.argv[1]
。但是,您应检查sys.argv
的长度是否大于1,如果不是则抛出错误,例如:
def main(argv):
if len(argv) == 1:
print "Not enough arguments"
return
else:
build(argv[1])
if __name__ == "__main__":
main(sys.argv)
答案 1 :(得分:1)
但真正的答案是了解并使用argparse
。