我尝试使用“子进程”在命令提示符下获取字符串。执行内容是读取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”中。 我该怎么办?
答案 0 :(得分:0)
进程可以选择输出到输出或错误流。在您的情况下,您不会重定向错误流。例如,您可以像这样合并输出和错误流:
p = subprocess.Popen("cd-paranoia",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
,其余的代码即可完成工作。