[英]How to send in command line arguments for a python file execution in command line?
我有一个可以在Sublime文本中完美运行的python程序。 文件中的main函数具有一个参数(整数参数)。
def main(number = input())
但是当我尝试在命令行中运行它时,
$python testFile.py 56
它什么也没给我。 如何在命令行中发送整数?
def main():
number = int(sys.argv[1]) # this line will fail if you pass an argument that's not an integer
print(number)
if __name__ == "__main__":
main()
您想要的是sys.argv
。
def main(number):
print int(number)
if __name__ == "__main__":
main(sys.argv[1])
然后,您将可以在$python testFile.py 56
传递所需的内容
您的问题是您正在调用testFile.py
并在脚本启动之前(并从def main()
读取def main()
提供了一个参数。
您可以使用几种方法,但是最简单的方法可能只是使用sys.argv
获取命令行参数,例如
def main():
number = int(sys.argv[1])
#this line calls main if you're calling the script directly:
if __name__ == '__main__':
main()
请注意,在方法签名中提供可变参数(例如,“ input()”)作为默认值是一种糟糕的形式。
正如其他人已经建议的那样,可以使用sys.argv
在代码中获取命令行参数。
但是,如果由于某种奇怪的原因您不想使用它,您也可以尝试在shell中使用pipe
传递输入。
例如 ,
$ echo '56' | python testFile.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.