python遍历目录树_在Python中遍历目录树的速度要快得多?

假设给定目录树的大小是合理的:比如Twisted或Python这样的开源项目,遍历和迭代该目录中所有文件/目录的绝对路径的最快方式是什么?

我想在Python中完成这项工作。os.path.walk很慢。所以我尝试了ls-lR和tree-fi。对于包含约8337个文件(包括tmp、pyc、test、.svn文件)的项目:$ time tree -fi > /dev/null

real 0m0.170s

user 0m0.044s

sys 0m0.123s

$ time ls -lR > /dev/null

real 0m0.292s

user 0m0.138s

sys 0m0.152s

$ time find . > /dev/null

real 0m0.074s

user 0m0.017s

sys 0m0.056s

$

tree似乎比ls -lR快(尽管ls -R比tree快,但它没有给出完整的路径)。find是最快的。

有人能想出一个更快和/或更好的方法吗?在Windows上,如果需要,我可以简单地发送一个32位二进制树.exe或ls.exe。

更新1:添加了find

更新2:为什么要这样做。。。我正在努力做一个聪明的cd、pushd等的替代品。。以及其他依赖于传递路径(less、more、cat、vim、tail)的命令的包装器命令。该程序偶尔会使用文件遍历来实现这一点(例如:键入“cdsrgraipatlxml”将自动转换为“cd src/pypm/grail/patches/lxml”)。如果换成这张cd花了,比如说,半秒钟的时间,我不会满意的。见http://github.com/srid/pf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值