python变量中的空格

时间:2015-03-17 08:09:40

标签: java websphere jython wsadmin

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

3 个答案:

答案 0 :(得分:2)

用双引号传递参数。

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

答案 1 :(得分:2)

我不确定,但看起来你正试图做一个典型的新手错误。

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

例如ls -l应该运行为:

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

你的例子caontains []可能会有所不同但没有它会是:

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

请注意,除了call()之外还有其他功能(仅返回返回代码)。

答案 2 :(得分:1)

尝试

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