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 代码)还有其他功能。
我有一个变量 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 代码)还有其他功能。