python - 如何为可执行的 python 脚本包含可选输入?
问题描述
我是一个相当新手的程序员。
我试图弄清楚如何制作它,以便 python 脚本在命令提示符下调用它时接受输入,并且在没有输入时具有默认值。
基本上,它是一个程序,默认情况下会以一种方式运行,C:Program Files\Sample\Sample.exe
如果你执行类似C:Program Files\Sample\Sample.exe "option 2"
. 这可能吗?
python中有什么我必须做的或者从.py到.exe的转换吗?我正在使用 pyinstaller 来转换脚本。
提前谢谢您,如果这不是很专业的问题,我们很抱歉。
解决方案
你调查过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
推荐阅读
- javascript - Vuejs - 在移动应用程序中呈现新问题时仍检查无线电输入
- c++ - WINAPI 序列化消息
- css - CSS动画:缩小顶部图像以显示子图像
- javascript - WooCommerce 加/减数量。产品不更新
- git - Git 子树,子模块 - 使用另一个项目中的项目
- arrays - 月级别和年级别的聚合,也在 MongoDB 中找到平均值
- python - Python Beautifulsoup 查找元素
- vercel - 是否有 Vercel 重写规则来摆脱 Facebook 的 fbclid 参数?
- python - 评估自我内部功能
- java - 使用 WSS4J (SOAP) 在 CXF WebServices 中实现身份验证