Python 如何设置运行时输入参数
平时用 python 不多,目前是想实现在命令行运行 python 的时候,比如打开一个相机视频流,然后运行过程中实时在命令行中输入各个参数的值,如曝光白平衡之类的。但好像看到的都是在程序调用时输入参数,但是像 nvgstcapture 命令就可以实现在打开摄像头预览之后实时设置参数。 不知道有没有大佬做过类似的事?
Python 如何设置运行时输入参数
撸主的需求没有太看懂。
试一下 input()
在Python里,设置运行时输入参数主要有三种常用方法,看你的具体需求。
1. 使用 sys.argv (最基础)
这是处理命令行参数最直接的方式。sys.argv 是一个列表,第一个元素是脚本名,后面的就是传入的参数。
import sys
if len(sys.argv) > 1:
# 第一个参数(索引1)通常是你要设置的值
input_value = sys.argv[1]
print(f"你输入的参数是: {input_value}")
else:
print("请提供一个参数,例如: python script.py hello")
2. 使用 argparse 模块 (推荐用于复杂参数)
当你的脚本需要多个参数、可选参数、帮助信息时,argparse 是标准库里的最佳选择。
import argparse
# 创建解析器
parser = argparse.ArgumentParser(description='这是一个示例脚本。')
# 添加一个必需的参数
parser.add_argument('filename', help='要处理的文件名')
# 添加一个可选参数
parser.add_argument('--verbose', '-v', action='store_true', help='显示详细输出')
# 解析参数
args = parser.parse_args()
print(f"要处理的文件是: {args.filename}")
if args.verbose:
print("详细模式已开启。")
运行方式:python script.py data.txt --verbose
3. 使用 input() 函数 (交互式输入)
如果需要在脚本运行过程中让用户输入,就用这个。
user_name = input("请输入你的名字: ")
print(f"你好, {user_name}!")
总结建议:简单参数用sys.argv,复杂需求用argparse,交互输入用input()。
click 模块
while True:
input(‘曝光:’)
input 吧
argv?
非常感谢,其实 input 就可以实现,我是想有没有一个函数,输入参数时自动捕捉值给变量,有的话会方便不少。目前就是新开线程然后等待 input 实现的
argv 是调用时参数吧,不是运行时参数
QT 这样的?看你描述像一个交互的客户端程序
1.做个图形界面
2.如果只有命令行,可以做个接口,通过接口修改。如果你会前端,甚至可以做个 Web 控制台
3.连接口都懒得做,甚至可以通过信号量来控制,你捕获信号量并修改变量
4.再不行,写个配置文件,定时检测然后加载
5.做个命令行交互
专门线程监听输入,或者使用信号。总之是要异步
类似于 socket 里面的 select()函数?
ncurses 之类的库做个命令行界面。
https://docs.python.org/3/howto/curses.html
对,就是想问下 py 命令行脚本在终端有没有类似 QT 这种方式实现
谢谢诸位建议,另外,目前看了一下 python curses,感觉值得一试

