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
,这样它就不会用特殊字符中断进程。