通过python捕获所有输出和错误,警告窗口中的命令



在Linux的bash shell中,我可以读取一个命令(从文件中),然后执行该命令,并将所有输出、错误和返回代码写入一个文件。我可以通过在windows中使用python来做到这一点吗。

当然可以。有很多方法可以做到这一点。

假设您有一个名为commands的文本文件,其中每行都包含一个命令。你可以这样做:

  • 打开输入文件
  • 从文件中读取下一个命令名
  • 使用subprocess执行命令
  • 将stderr重定向到stdout
  • 捕获组合输出
  • 如果命令成功地将返回代码设置为0,则从引发的异常中捕获返回代码
  • 将返回代码和输出写入文件

您将希望使用:https://docs.python.org/2/library/subprocess.html或https://docs.python.org/3/library/subprocess.html

例如:

import shlex
import subprocess
with open('commands.txt') as fin:
    for command in fin:
        try:
            proc = subprocess.Popen(
                shlex.split(command),
                stderr=subprocess.STDOUT,
                stdout=subprocess.PIPE
            )
            returncode = 0
            output = proc.communicate()[0]
        except subprocess.CalledProcessError as e:
            returncode = e.returncode
            output = e.output
        with open('output.txt', 'w') as fout:
            fout.write('{}, {}'.format(returncode, output))

相关内容

  • 没有找到相关文章

最新更新