subprocess.check_output()模块对象具有属性'check_output'

Lio*_*cer 10 python hadoop

我正在玩子进程库.我可以表演

v = subprocess.check_output("ls")

它工作正常.但是,当我SSH到一台机器并且我想执行hadoop命令时,

v = subprocess.check_output("hadoop fs -ls /path/to/file* | grep -oE '/(.*)'")

我明白了

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'check_output'
Run Code Online (Sandbox Code Playgroud)

不太清楚为什么.我想可能是我对子流程缺乏了解.我该如何解决这个错误?

Pad*_*ham 19

check_output被介绍,python 2.7所以不会工作< 2.7.

您可以使用Popenwith communicate来获取输出.

from subprocess import PIPE,Popen
proc = Popen(['ls', '-l'], stdout=PIPE)
print(proc.communicate()[0].split())
Run Code Online (Sandbox Code Playgroud)

部分文档可能很有用