gpt4 book ai didi

Python optparse 和参数中的空格

转载 作者:太空狗 更新时间:2023-10-29 22:01:05 24 4
gpt4 key购买 nike

当使用 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,所以我现在无法解释这种行为。

最佳答案

您可以将它们括在引号中以使其与现有代码一起使用。

python myprog.py --executable "python someOtherProg.py"

Is it possible to parse such lines using optparse or do you have to use argparse to do it?

我不知道你是否/如何使用 optparse 来完成它,因为我还没有真正使用过 optparse

不过,我可以用 argparse 帮助您。这是一个简单的例子:

#!/usr/bin/python
import argparse, sys

if __name__ == '__main__':
parser = argparse.ArgumentParser(description = 'Demonstration of Argparse.')
parser.add_argument('-e', '--executable', nargs = '+', help = 'List of executables')
args = parser.parse_args(sys.argv[1:])
print args.executable

和用法:

manoj@maruti:~$ python myprog.py --executable python someOtherProg.py
['python', 'someOtherProg.py']

我还建议从 optparse 切换到 argparse . Optparsedeprecated自 2.7.

关于Python optparse 和参数中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com