分享找某个目录里找 top N 大文件的 python 代码.

2014-09-17 10:12:00 +08:00
 dbow
代码:
url://gist.github.com/maliubiao/44d9dc17869b4e5f9925

使用方法:
python travfs.py 目录 N, 不写N的话默认为前10大

有时候下载的文件太多,随处丢找不到了,结果硬盘满了,可以用来找目标清理一下.
试过Linux, Windows能正常使用, 其它的应该兼容。

欢迎反馈
4525 次点击
所在节点    Python
33 条回复
Lycnir
2014-09-17 10:32:20 +08:00
提个建议 速度有待提升
xvid73
2014-09-17 10:36:21 +08:00
感觉还要打目录比较麻烦,试试看下面这个能凑合不,列出当前文件夹下的 top10

alias top10="du -chs *|sort -rh|head -11"
dbow
2014-09-17 12:46:50 +08:00
@Lycnir linux执行上80%时间消耗在posix_listdir上,这是个C函数,优化得引入C代码,就不能跨平台了。
flyee
2014-09-17 13:13:30 +08:00
insight
2014-09-17 13:16:44 +08:00
Windows Directory Statistics
https://windirstat.info/
dbow
2014-09-17 13:31:36 +08:00
@flyee 赞,ncdu纯C写的非常快, 目录较深的话得多按几下。
xjx0524
2014-09-17 13:32:24 +08:00
我想看手机sd卡里存储文件大小,大多数软件不支持,有推荐的没?
ChanneW
2014-09-17 13:36:07 +08:00
不包含隐藏文件?
dbow
2014-09-17 13:36:32 +08:00
@xjx0524 挂载手机SD卡到电脑上,然后使用这个程序.
hahastudio
2014-09-17 13:38:55 +08:00
果然还是 sort 比 heapq.nlargest 快一些= =
dbow
2014-09-17 13:39:34 +08:00
@ChanneW 当然包含隐藏文件。
ChanneW
2014-09-17 13:40:47 +08:00
sort_files 排的太多了
ChanneW
2014-09-17 13:42:07 +08:00
@dbow
```
if d.startswith("."):
return
```
dbow
2014-09-17 13:43:26 +08:00
@ChanneW 这个对性能的影响可以忽略,主要还是python的posix_listdir C函数速度慢。
dbow
2014-09-17 13:47:01 +08:00
@ChanneW 这两句没影响,为了输出文件名时是绝对路径, 传参数的时候已经abspath过了.
codeninja
2014-09-17 13:51:38 +08:00
ls -lSh | more 不就行了?
dbow
2014-09-17 13:54:26 +08:00
@codeninja travfs.py是遍历所有子目录的。
ChanneW
2014-09-17 14:03:18 +08:00
@dbow 那要这两句代码干什么?
dbow
2014-09-17 14:06:28 +08:00
@ChanneW 防止当做模块调用的时候,传过来一个相对路径。
ChanneW
2014-09-17 14:14:10 +08:00
@dbow 那模块调用的时候隐藏文件不就被忽略了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/133924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX