当使用optparse时,我想要获取选项后面的整个字符串,但是我只能获取到第一个空格之前的部分。
例如:
这导致了系统找不到文件的异常。当我使用时,会出现这种情况。
例如:
python myprog.py --executable python someOtherProg.py
我在“可执行文件”中得到的只是“python”。
使用optparse解析这样的行是否可能,还是必须使用argparse来完成?
€:我已经尝试将其括在“s中。但是在进一步挖掘代码后,我发现子进程调用无法处理该参数。
包含命令行的字符串被塞入列表“args”中。
args = [self.getExecutable()] + self.getArgs().split()
这就像是
"[python D:\\\workspace\\\myprog\\\src\\\myprog.py]"
这导致了系统找不到文件的异常。当我使用时,会出现这种情况。
args[0]
它可以工作,但我失去了对可执行文件的参数。
如果subprocess模块没有首先获取字符串,则会从列表中构建cmdline,因此我目前无法解释该行为。
silly python some
:argv[1]
="python"
,argv[2]
="some"
。silly "python some"
:argv[1]
="python some"
。而silly python\ some
:argv[1]
="python some"
。但是在Python 3.5中,我们有silly.py python some
:argv[1]
="python"
,argv[2]
="some"
。silly.py "python some"
:argv[1]
="python some"
。而silly.py python\ some
:argv[1]
="python\\"
,"some"
。太神奇了! - Urhixidur