适用于python 2.7的subprocess.check_output()

时间:2019-06-12 01:28:38

标签: python-2.7 subprocess

我有一个用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中合适的替代方式。

0 个答案:

没有答案