这是我的剧本
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循环没有考虑到这一点,但我该怎么做呢?
由于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)
但真正的答案是了解和使用argparse
。