在当前工作目录中:
import os
print( os.listdir() )
将列出文件和目录。但是,我也可以使用system
命令在Linux计算机的当前工作目录中获取文件和目录的列表:
import os
print( os.system('ls') )
哪个命令更好:os.listdir()
或os.system('ls')
,为什么?
答案 0 :(得分:1)
os.listdir()
在python中本地实现,并且可以在python编译所在的任何操作系统上使用。
调用os.system('ls')
依赖于底层操作系统来拥有ls
命令,这是一个疯狂的假设(例如,关于Windows呢?),并且要求此可执行文件位于{{1 }}。从性能的角度来看,您将执行另一个过程,这完全是多余的。而且,如果您想做的比打印结果更出色,那么您就不得不自己解析输出。
长话短说-不要重新发明轮子。如果python为您提供了内置$PATH
,请使用它。
答案 1 :(得分:0)
我也许在这里挖坟墓,但是最近我遇到了类似的用法。
我尝试ls
一个/path/to/temp
文件。它无法正常工作,在关闭之前,ls
命令被卡住且无响应超过5分钟。注意,这是通过腻子通过SSH进行的,我尝试了ls -l | wc -l
,但该方法也不起作用。
len(os.listdir("path/to/temp"))
立即返回一个数字,大约在75000
附近,该列表几乎立即被构建。因此,如果在具有大量后代的目录上使用os.listdir()
vs ls,则有明显的速度优势。