【发布时间】:2011-08-30 07:02:18
【问题描述】:
我有一些目录,里面有大量文件。每次我尝试访问其中的文件列表时,我都无法做到这一点,或者出现了明显的延迟。我试图在 Linux 的命令行中使用 ls 命令,而我的托管服务提供商的 Web 界面也没有帮助。
问题是,当我只执行ls 时,甚至开始显示某些内容都需要大量时间。因此,ls | wc -l 也无济于事。
经过一些研究,我想出了这段代码(在这个例子中,它计算了某个服务器上新电子邮件的数量):
print sum([len(files) for (root, dirs, files) in walk('/home/myname/Maildir/new')])
以上代码是用 Python 编写的。我使用了 Python 的命令行工具,它运行得非常快(立即返回结果)。
我对以下问题的答案感兴趣:是否可以更快地计算目录中的文件(没有子目录)?最快的方法是什么?
【问题讨论】:
-
要同时统计文件数和目录数吗?
-
@Rafe 没关系 - 我所说的目录没有子目录。因此,两种解决方案都与我相同。
标签: python linux ls directory-listing