分享找某个目录里找 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能正常使用, 其它的应该兼容。

欢迎反馈
4528 次点击
所在节点    Python
33 条回复
dbow
2014-09-17 14:20:12 +08:00
@ChanneW 不会被忽略,你仔细想想.
ChanneW
2014-09-17 14:21:30 +08:00
@dbow 类型不对报错?
ChanneW
2014-09-17 14:22:08 +08:00
还是把 abspath 放进来好吧, 这样就统一了.
xjx0524
2014-09-17 14:44:02 +08:00
计算机\MI 2\内存设备
没法在命令行确定这个路径 A-Z都不是
dbow
2014-09-17 15:08:55 +08:00
@xjx0524 假定你用的是windows 7或者以上的系统, 1, 执行wmic, 2, 在弹出的窗口里输入logicaldisk get name, size, volumename, 确定你SD卡的盘符,然后执行python travfs.py 盘符
imn1
2014-09-17 15:22:51 +08:00
未细看思路——我理解能力比较慢,见谅
说些细节
首先我喜欢用os.walk做这种dirty work,git上面有个修改版比py原生的os.walk更快(现在身边没有py,记不起项目名)

下面一些量大可以考虑优化
路径计算其实string方式比os.path的函数更快
有些for可以写成map或表达式
如果最初的获取路径不涉及排序,可以考虑字典或set保存
部分函数用yield试试

这个如果全盘搜索我会考虑加入pandas
如果仅仅为了“找出top N”这个目的用pandas当然有点过分,不过我做文件搜索往往有其他需求,加pandas处理极大量的路径很方便
xjx0524
2014-09-17 15:23:07 +08:00
@dbow 3个硬盘,1个dvd,1个小米搞出来的小米助手安装程序,sd卡在便携设备那里,没有盘符
dbow
2014-09-17 15:27:29 +08:00
@xjx0524 没有盘符是没办法访问的,把SD挂载到某个盘符才行。
gerorim
2014-09-17 18:49:12 +08:00
@xjx0524

preview:


store:
gerorim
2014-09-17 18:54:27 +08:00
https://play.google.com/store/apps/details?id=com.google.android.diskusage

手機端 GUI 比起 CLI 會友好、直觀些。

誤點回复了。。
xjx0524
2014-09-17 21:07:49 +08:00
@gerorim 好用 非常感谢!
gateswong
2014-09-18 01:05:15 +08:00
其实 各个系统的文件浏览器都有按照文件大小,创建时间排序的

你稍微排序一下就可以清理了啊
shyrock
2014-09-18 10:33:27 +08:00
看到有人推荐 WinDirStat,不知道这个比TreeSize效率如何?
顺便,TreeSize貌似跨平台。

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

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

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

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

© 2021 V2EX