Python 如何知道shlex.split中的参数值

Python 如何知道shlex.split中的参数值,python,pipe,quote,shlex,Python,Pipe,Quote,Shlex,我将字符串变量设置为——testabc-aa-bc,这是我的linux脚本的参数 我正在使用python子流程执行此操作 这个字符串可能有特殊的字符,比如backtic或',--test \“这是我的测试\”-a-b b c在这种情况下,我必须使用管道。quote来引用值 我可以使用shlex.split拆分此文件并拆分参数,我想知道这一点 In [21]: shlex.split("--test \"it's my test\" -a a -b b c") Out[21]: ['--test'

我将字符串变量设置为
——testabc-aa-bc
,这是我的linux脚本的参数

我正在使用python
子流程执行此操作

这个字符串可能有
特殊的
字符,比如
backtic
'
--test \“这是我的测试\”-a-b b c
在这种情况下,我必须使用
管道。quote
来引用值

我可以使用
shlex.split
拆分此文件并拆分参数,我想知道这一点

In [21]: shlex.split("--test \"it's my test\" -a a -b b c")
Out[21]: ['--test', "it's my test", '-a', 'a', '-b', 'b', 'c']
从列表或
shlex.split
如何检查,哪个是值,哪个是参数


我可以检查
startswith('-')或startswith('-')
,但是否有可能,这一逻辑可能是错误的?

是:完全取决于接收参数的程序将其中一些参数解释为选项。例如,
-test
可以是名为
test
的单个选项,也可以解释为
-t-e-s-t
的快捷方式。它可能使用
-
以外的字符来表示选项
argparse
本身支持这一点。为什么您需要识别选项?谢谢Chepner,如果我使用的是
shell脚本
,那么我的方法是正确的?@Chepner正如我提到的,我需要应用
pipe.quote
,这样它就不会用特殊字符中断进程。