在python

时间:2016-04-18 18:47:53

标签: python subprocess

此处已提出并回答了类似的问题:How to viewthe actual command executed by "subprocess.check_call()"

我尝试了shell=True选项,但它显示了包含所有逗号和大括号的命令。我想命令看起来干净,因为它将在终端执行。

一个选项是使用print(),但有一个选项可以避免冗余。我不希望在我的脚本中多次编写同一段代码。 (是的,我知道,将命令声明为变量也是可能的,还有什么?)

1 个答案:

答案 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引号。