os.popen有问题

时间:2017-08-07 11:45:40

标签: python python-2.7 popen

我正在使用 Think Python 学习Python。我遇到的问题是当我尝试示例中的代码时:

import os
cmd = 'ls -l'
fp = os.popen(cmd)
res = fp.read()
stat = fp.close()
print res

但是,print res只返回一个空字符串,它应该以长格式显示当前目录的内容。 print stat返回1,表示进程中出现了问题,但没有错误消息。我做错了什么?

3 个答案:

答案 0 :(得分:0)

我的第一个猜测是你在Windows系统上工作。如果替换' ls -l'通过' dir'它应该在Windows上工作。

答案 1 :(得分:0)

您的代码运行正常,只是您正在使用Windows系统。 我更正了你的代码:

import os

cmd = 'dir'
fp = os.popen(cmd)
res = fp.read()
stat = fp.close()
print res
print stat

答案 2 :(得分:0)

它应该适用于Python 2.7(至少)。

无论如何,它没有回答为什么它不起作用(但我认为它不是Python或os.popen()问题,而是另一个更多的元素)但是,来自os.popen() doc

  

从2.6版开始不推荐使用:此功能已过时。使用   subprocess模块。特别检查更换旧功能   子流程模块部分。

如果您使用的是Windows,请使用dir代替ls