对于一个项目,我想编写一个我想在项目的各个部分中重复使用的代码。我需要执行一个命令,并希望能够在控制台中打印或使命令静音之间进行选择。我已经提出了,但是我不确定是否可以,并且“ with”是否可以这种方式正常工作:
import os
import sys
import subprocess
def run_subprocess(cmd, display_output : bool=False):
if display_output:
stdout = sys.stdout
else:
stdout = open(os.devnull, "w")
with stdout as s:
exit_code = subprocess.call([cmd], shell=True, stdout=s)
return exit_code
这样可以吗?我应该改变一些东西吗?谢谢!
将前哨subprocess.DEVNULL
用于/ dev / null或将默认值None
用于stdout:
import subprocess
def run_subprocess(cmd, display_output: bool = False):
stdout = None if display_output else subprocess.DEVNULL
return subprocess.call([cmd], shell=True, stdout=stdout)
使用这些可使subprocess
目标正确且以与系统无关的方式处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句