我曾经能够做一个subprocess.call(["command","-option value -option value"]) ,它会工作有一个更改命令,以正确使用引号中的东西,但现在我必须更改我的子进程调用命令看起来像这样:
subprocess.call(["command","-option","value","-option","value"])
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的,让它在python中再次工作?
这些os.system("command -option value -option value") 作品和以前一样.
unu*_*tbu 37
shell=True如果可以,请避免- 这是一种安全风险.为此, shlex.split就足够了:
import subprocess
import shlex
subprocess.call(shlex.split("command -option value -option value"))
Run Code Online (Sandbox Code Playgroud)
您需要指定shell=True让 subprocess.call 来解释该字符串。
请参阅subprocess.Popen 构造函数文档中的注释(subprocess.call 方法采用与 subprocess.Popen 构造函数相同的参数)。