Space 在 python 变量中

Space in python variable

我有一个变量 toPath(包含像 C:/Program Files(x86)/bla 这样的路径)。
这个变量我作为agrument传递:'[-operation update -contents ' + toPath + ']' 但是因为我在这个变量中有一个 space,所以我得到了 IllegalArgumentException。 我该如何解决这个问题?

用双引号传递参数。

toPath = "\"C:/Program Files(x86)/bla\"";

尝试

'[-operation update -contents "' + toPath + '"]'

我不确定,但看起来您正在尝试犯一个典型的新手错误。

如果您尝试 运行 从多个变量构建的命令,您可能容易受到注入攻击。为防止这种情况,请使用 subprocess 模块并将所有参数作为列表提交。该模块将处理所有内容,使其也适用于空格。

例如 ls -l 应该是 运行 为:

subprocess.call(["ls", "-l"])

您的示例包含 [],可能会有所不同,但没有它会是:

subprocess.call(['-operation','update', '-contents', toPath])

请注意,子流程模块中除了 call()(return 仅是 return 代码)还有其他功能。