首页 > 解决方案 > 如何为可执行的 python 脚本包含可选输入?

问题描述

我是一个相当新手的程序员。

我试图弄清楚如何制作它,以便 python 脚本在命令提示符下调用它时接受输入,并且在没有输入时具有默认值。

基本上,它是一个程序,默认情况下会以一种方式运行,C:Program Files\Sample\Sample.exe如果你执行类似C:Program Files\Sample\Sample.exe "option 2". 这可能吗?

python中有什么我必须做的或者从.py到.exe的转换吗?我正在使用 pyinstaller 来转换脚本。

提前谢谢您,如果这不是很专业的问题,我们很抱歉。

标签: python

解决方案


你调查过sys.argv吗?它包含命令行参数,第一个值是程序本身。

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

推荐阅读