我有一个用python 3.7编写的函数,该函数使用subprocess.check_output()函数来运行命令。我需要将功能转换为python 2.7兼容,同时保持功能相同。我不确定基于python 3.6中使用的参数,check_output()函数中python 2.7中的参数的新参数是什么。 我特别不知道python 2.7中的sp.DEVNULL的等效项。我从python标准文档(https://docs.python.org/3/library/subprocess.html#subprocess.DEVNULL)中学不到很多。考虑到check_output()函数上方的注释提到了为什么要使用它,我认为此参数可能很重要。
def _run_command(command):
try:
# The stdin=sp.DEVNULL below is needed so that ffmpeg does not mess up
# the terminal.
sp.check_output(command, stdin=sp.DEVNULL, stderr=sp.PIPE)
except sp.CalledProcessError as exc:
msg = ("operations._run_command failed.\n"
"Command was: {}.\n"
"Standard error was: {}.\n"
"Exit code was: {}").format(exc.cmd, exc.stderr.decode(),
exc.returncode)
logger.error(msg, extra=JOB_RUNNING)
raise exc
如果有人可以解释sp.check_output()函数中的参数及其参数是什么意思,什么是在python 2.7中合适的替代方式。