此处已提出并回答了类似的问题:How to viewthe actual command executed by "subprocess.check_call()"
我尝试了shell=True
选项,但它显示了包含所有逗号和大括号的命令。我想命令看起来干净,因为它将在终端执行。
一个选项是使用print()
,但有一个选项可以避免冗余。我不希望在我的脚本中多次编写同一段代码。 (是的,我知道,将命令声明为变量也是可能的,还有什么?)
答案 0 :(得分:1)
我假设您将参数作为列表传递给子进程,因此打印命令通常只是对delimiter.join(list)
的简单调用。
params = ["my.exe", "-param1", "-param2", "value 2"]
if debug:
print("executed command: " + " ".join(params))
result = subprocess.check_call(params)
注意:这不会添加将打印的字符串复制并粘贴到PowerShell或Bash等shell中所需的propper引号。