调用函数os.popen()会产生意外的返回对象

时间:2019-01-29 15:36:23

标签: python-2.x

我正在使用 os.popen()调用某些参数。当我在终端中调用参数本身时,它可以正常工作,并且得到了预期的返回对象。但是当我使用 os.popen()调用它时,我得到

  

位于0x7f6ec0d3d1d0的os._wrap_close对象>

代码:

    > command = "python -m json.tool \"" + path + video +"-something.json\"| grep \"ext\\\"\"  
    > result = os.popen(command) 
    > print(result)

当它应该是同一件事时,我很难获得不同的结果

1 个答案:

答案 0 :(得分:0)

此命令打开命令的管道(stdout,带有popen2 / 3/4 stdin,stderr),并返回打开的文件对象而不是命令的stdout。 (python docs
因此,为了获得命令的结果,您必须阅读可以用result.read()完成的打开文件。

Here是有关不同popen及其(基本)用法的很好的解释。