Python运行系统命令并保存输出

时间:2012-12-12 20:31:18

标签: python-2.7

1)编写一个运行系统命令的python程序(即“dir”) 2)将系统命令的输出保存到变量中 3)打印变量

这是在Python中完成的,我无法弄清楚这一点,我找到一个只使用子进程返回“0”。

我正在使用Wndows 7 Python 2.5和2.7

基本上,我想要像cmd这样的输出 - > dir C:\

然后使用Python将该输出保存到文件中。

帮助会很好,

2 个答案:

答案 0 :(得分:2)

您可以使用subprocess.check_output

来自文档:

  

subprocess.check_output(args, stdin=None, stderr=None, shell=False, universal_newlines=False)

     

使用参数运行命令并返回它   输出为字节串。

示例:

>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'

答案 1 :(得分:0)

这是我发现的elsewhere课程,似乎可以实现您的目标

class Command(object):
    """Run a command and capture it's output string, error string and exit status"""
    def __init__(self, command):
        self.command = command
    def run(self, shell=True):
        import subprocess as sp
        process = sp.Popen(self.command, shell = shell, stdout = sp.PIPE, stderr = sp.PIPE)
        self.pid = process.pid
        self.output, self.error = process.communicate()
        self.failed = process.returncode
        return self
    @property
    def returncode(self):
        return self.failed

要运行它,只需执行以下操作:

commandVar = Command("dir").run()

然后查看结果:

commandVar.output