我正在使用 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
,表示进程中出现了问题,但没有错误消息。我做错了什么?
答案 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