如何获得命令提示符输出?为什么我不能在这段代码中得到它

时间:2018-11-05 10:12:33

标签: python python-3.x visual-studio

我尝试使用“子进程”在命令提示符下获取字符串。执行内容是读取CD-DA的“ TOC”。我正在使用“ cdparanoia”。 如果在命令提示符下键入内容,我可以获取“ TOC”。

import subprocess
class Aaa():
    def __init__(self):
        p = subprocess.Popen("cd-paranoia",stdout=subprocess.PIPE)
        out = p.communicate()[0]
        str = out.decode(encode="utf-8")
        print(str)
Aaa()

在上面的代码中,在Visual Studio 2017的交互式窗口中,按下重置按钮后,会显示红色字符串“ TOC”。但是无法将其存储在变量“ str”中。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

进程可以选择输出到输出或错误流。在您的情况下,您不会重定向错误流。例如,您可以像这样合并输出和错误流:

    p = subprocess.Popen("cd-paranoia",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

,其余的代码即可完成工作。