这里的情况是:为什么`打印foo.communicate()[0]``从打印foo.communicate不同()`”
我有我运行一个命令:
?import subprocess
foo = subprocess.Popen('ls /', shell=True, stdout=subprocess.PIPE,\
stderr=subprocess.STDOUT)
非常基本的,正确的,我已经想通了,我可以做的东西与输出与.communicate()
,像这样:
print foo.communicate()
伟大的工程,并产生输出,对于subprocess.communicate文档建议我t应该是一个元组:
('bin\nboot\ncdrom\n[...stuff redacted for brevity...]tmp\nusr\nvar\nvmlinuz\n', None)
请注意\n
换行符在那里。而且我发现,只是在寻求元组的第一个元素产生输出用换行,像这样:
>>> print foo.communicate()[0]
bin
boot
cdrom
[...stuff redacted for brevity...]
tmp
usr
var
vmlinuz
但我不明白的是为什么只有第一个元素印刷生产的换行。不要误解我的意思,这很棒,我很高兴我可以在没有循环的情况下做到这一点,但我想知道发生了什么。
由于提前,
--jed