Python如何对input函数接收的输入内容执行arg-parsing参数解析
Python解析input输入的命令行格式参数方案
方法1:使用标准库argparse(最推荐,支持复杂参数规则)
argparse是Python原生的参数解析库,本来用于解析系统传入的命令行参数,我们只需要把input获取的参数字符串拆分后传入解析器即可,兼容带引号、参数含空格等特殊场景:
import argparse import shlex a = input('enter something here: ') # 用shlex.split拆分参数,可正确识别引号包裹的带空格参数,比普通str.split更稳妥 args_list = shlex.split(a) # 配置参数规则 parser = argparse.ArgumentParser() parser.add_argument('--url', required=True, help='目标URL地址') parser.add_argument('--data', required=True, help='请求携带的数据') # 解析并读取参数 args = parser.parse_args(args_list) print(args.url) # 输出 example.com print(args.data) # 输出 some_data_here
方法2:简单场景手动解析(无需导入额外模块)
如果参数规则非常简单,没有复杂的特殊格式,也可以手动拆分处理:
a = input('enter something here: ') parts = a.split() arg_map = {} for idx in range(len(parts)): if parts[idx].startswith('--'): if idx + 1 < len(parts): arg_key = parts[idx].lstrip('--') arg_map[arg_key] = parts[idx + 1] print(arg_map.get('url')) print(arg_map.get('data'))
注意事项
- 手动解析仅适合参数值不含空格的场景,如有带空格的参数值需要用引号包裹的需求,请优先使用第一种方案
argparse还支持配置参数类型、默认值、可选参数、枚举值等规则,可适配绝大多数参数解析需求
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

