在Python命令行参数中拆分长参数

问题描述 投票:0回答:1

如何使用argparse分割Python脚本的长参数?

当前,您必须使用参数调用脚本,如下所示:

python myscript.py --argument1 "Value1" --argument2 "Value2" --argument3 "Value3" --argument4 "Value4" --argument5 "Value5" --argument6 "Value6"

然而,这很难写,特别是当参数列表很长时。我认为下面的内容将更容易阅读。但是当我尝试以下操作时,会收到以下错误:unrecognized arguments: \

python myscript.py \
  --argument1 "Value1" \
  --argument2 "Value2" \
  --argument3 "Value3" \
  --argument4 "Value4" \
  --argument5 "Value5" \
  --argument6 "Value6"

有人知道该怎么做吗?还是根本不可能?

[如果有人需要它;这是我的代码示例:

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('--argument1')
parser.add_argument('--argument2')
parser.add_argument('--argument3')
parser.add_argument('--argument4')
parser.add_argument('--argument5')
parser.add_argument('--argument6')

args = parser.parse_args()
python python-3.x command-line-arguments multiline args
1个回答
0
投票

出于可读性考虑,假设您在谈论Value1Value2,...是非常长的字符串,则可以执行此操作。

python myscript.py \
  --argument1 "Value1 is very very very \
long long long string" \
  --argument2 "Value2" \
  --argument3 "Value3" \
  --argument4 "Value4" \
  --argument5 "Value5" \
  --argument6 "Value6"

或者您可以先将长参数字符串分配给shell变量。

ARG1="Value1 is very very very \
long long long string"
python myscript.py \
  --argument1 "${ARG1}" \
  --argument2 "Value2" \
  --argument3 "Value3" \
  --argument4 "Value4" \
  --argument5 "Value5" \
  --argument6 "Value6"
© www.soinside.com 2019 - 2024. All rights reserved.