Python 3.x “如何转换命令行”;键=值“;从args到字典?

Python 3.x “如何转换命令行”;键=值“;从args到字典?,python-3.x,command-line-arguments,args,Python 3.x,Command Line Arguments,Args,目前,我需要实现一个python程序,它接受任意数量的命令行参数,如 python myprog.py x1=12 y3=hello zz=60 这些参数需要转换成字典,就像 {"x1": "12", "y3": "hello", "zz": "60"} 我尝试了argparse模块,但参数中的键(示例中的x1、y3、zz)无法事先知道,而argparse似乎需要我单独添加参数键,因此我认为它不适合这种特定情况 你知道如何完成这种命令行args到字典的转换吗?我是否错过了argparse的某

目前,我需要实现一个python程序,它接受任意数量的命令行参数,如

python myprog.py x1=12 y3=hello zz=60
这些参数需要转换成字典,就像

{"x1": "12", "y3": "hello", "zz": "60"}
我尝试了argparse模块,但参数中的键(示例中的x1、y3、zz)无法事先知道,而argparse似乎需要我单独添加参数键,因此我认为它不适合这种特定情况


你知道如何完成这种命令行args到字典的转换吗?我是否错过了argparse的某些内容,或者我需要使用其他内容?

你可以通过处理字符串来解析它。e、 g

import sys

kw_dict = {}
for arg in sys.argv[1:]:
    if '=' in arg:
        sep = arg.find('=')
        key, value = arg[:sep], arg[sep + 1:]
        kw_dict[key] = value

对于sys.argv[1::::中的arg,可能应该执行
,因为程序名不应该是有用的参数。另外,使用
key,sep,value=arg.partition('=')
将允许该值包含等号,而不会导致异常。注意。我想我的旧代码的主要问题是它不能处理多个等号。更新代码。