[英]How do you include an optional input for an executable python script?
我是一个相当新手的程序员。
我试图弄清楚如何制作它,以便 python 脚本在命令提示符中调用时接受输入,并且在没有输入时具有默认值。
基本上,它是一个程序,默认情况下会以一种方式运行C:Program Files\Sample\Sample.exe
如果您执行类似C:Program Files\Sample\Sample.exe "option 2"
之类的操作,则会以另一种方式运行。 这可能吗?
python 中是否有我必须做的事情或从.py 到.exe 的转换? 我正在使用 pyinstaller 来转换脚本。
提前谢谢您,如果这不是很专业的问题,我们很抱歉。
你看过sys.argv
吗? 它包含命令行arguments,第一个值是程序本身。
import sys
thing = "default"
if len(sys.argv) > 1:
thing = sys.argv[1]
print("Thing is: ", thing)
像这样运行:
$ python3.7 ex.py
Thing is: default
$ python3.7 ex.py a
Thing is: a
您还可以使用argparse
模块,它提供了更大的灵活性:
import argparse
parser = argparse.ArgumentParser(description='Example.')
parser.add_argument('thing', type=str, nargs="?", default="default")
args = parser.parse_args()
print("Thing is", args.thing)
产生相同的结果:
$ python3.7 ex.py
Thing is default
$ python3.7 ex.py a
Thing is a
您还可以使用click
库,它提供了更大的灵活性:
import click
@click.command()
@click.argument('thing', default="default")
def program(thing):
print("Thing is", thing)
if __name__ == '__main__':
program()
一样:
$ python3.7 ex.py
Thing is default
$ python3.7 ex.py a
Thing is a
一个简单的例子
#!/usr/bin/python
import sys
def program(arguments):
if arguments:
for arg in arguments:
print(arg + '\n')
else:
print('no arguments')
if __name__ == "__main__":
program(sys.argv[1:])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.