首页 > 解决方案 > 在 Python 命令行参数中拆分长参数

问题描述

如何使用 Python 脚本拆分长参数argparse

目前,您必须调用带有参数的脚本,如下所示:

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()

标签: pythonpython-3.xcommand-line-argumentsmultilineargs

解决方案


根据您的系统使用以下键编写多行命令。

\适用于基于 Unix 的系统。

^适用于 Windows 命令提示符。

`适用于 Windows Powershell。

所以,在你的情况下,命令可以写成:

对于 Windows 命令提示符

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

对于 Windows Powershell

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

对于基于 Unix 的系统

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

TL;DR:^windows cmd、`windows powershell 和\Unix/Linux 系统上使用。


推荐阅读