Python之命令行参数生成

有时候我们需要对脚本发送自定义的一些参数变量,但是我们又无法控制用户传参的顺序
因此我们需要将脚本命令行传参的数据全部序列化成一个json对象,通过对象获取需要的数据

params = {}
# 当命令行有传参的时候我们才执行,因为我这里需要外部赋值,所以要求长度大于3,如果不需要赋值直接传参只需要大于2即可
if len(sys.argv) >= 3:
    for i in range(0, len(sys.argv) - 1):
        j = i * 2 + 1
        if j + 1 >= len(sys.argv):
            break
        params[sys.argv[j]] = sys.argv[j + 1]
print(params)
  • 效果演示
(python39)>python main.py -d
{}
(python39)>python main.py -d 20210401 -l
{'-d': '20210401'}
(python39)>python main.py -d 20210401 -l 12
{'-d': '20210401', '-l': '12'}