gpt4 book ai didi

java - python 变量中的空格作为参数传递给子进程

转载 作者:行者123 更新时间:2023-12-01 16:59:09 25 4
gpt4 key购买 nike

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

最佳答案

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

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

例如 ls -l 应运行为:

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

您的示例 caontains [] 并且可能相当不同,但没有它会是:

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

请注意,子进程模块中除了 call()(仅返回返回码)之外,还有其他函数。

关于java - python 变量中的空格作为参数传递给子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29094055/

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