onlyclxy 发表于 2021-11-9 02:11

python下载巨量文件时,怎么分类文件夹好?

本帖最后由 onlyclxy 于 2021-11-9 14:52 编辑

问下大佬们:比如用python爬取10w张图片, 要是这10w张图片全部下载到一个文件夹里,那打开图片基本上就卡死了.PS:现在我电脑里已经有这么个10w张图片的文件夹了,太酸爽了.
然后怎么给这些图片分类到不同的文件夹好呢?

遇到的阻碍1: 为了避免下载到重复文件, 所以会在下载之前,检测文件夹里有没有这个文件.如果检测到有这个文件, 就跳过本条下载.当全部图片在这一个文件夹里时, 这个方法就特别好用. 可以直接检测这个文件夹里有没有要下载的这个图片文件名. 可以有效避免下载到重复文件. 但是文件量大了就难受了

遇到的阻碍2:如果说我每过100张图片就新创建一个文件夹. 那么问题来了. 那么在下载新的图片之前,就不好知道本地文件夹里有没有存在这个图片了.(因为不知道存在多少个文件夹) 如果要是每次下载前都遍历扫描一遍磁盘, 有点太浪费资源

遇到的阻碍3:如果说找一张表,下载了就勾选, 那么可能会遇到一些文件被以后误删了. 然后表里勾选已经下载, 那么这个文件就没法补全了.

遇到的阻碍4. 如果说按照网页自身的分类创建对应的文件夹,也不妥. 万一网页以后改分类, 那么可能就会新建一个文件夹. 到时候就会又下载到重复的文件.

所以大佬们对于这件事情.. 有没啥好点的经验给分享一下呢.. 非常感谢!

Zeaf 发表于 2021-11-9 05:33

4可解决1、2
能否找到文件固有的共性进行分类呢?(文件名字?后缀?等等)
并不一定按照网站分类,而且网站分类应该也不容易变吧?

我当时爬pixiv图是按照画师或日期分的,这些特征比较明显且稳定哈哈。如果真没什么特征那就看其他大佬的吧

weakptr 发表于 2021-11-9 07:20

用哈希分,比如哈希值第一位是1的分一个文件夹,第一位是2的分一个……文件数量多可以再增加层级。

缺点分出来的文件夹索引困难,可以再加个sqlite

剑来…… 发表于 2021-11-9 08:31

3楼说的对,使用哈希分,可以避免重复。但是索引困难

ynboyinkm 发表于 2021-11-9 08:42

剑来…… 发表于 2021-11-9 08:31
3楼说的对,使用哈希分,可以避免重复。但是索引困难

可以当独建一个索引文件来快速查看

mq0192 发表于 2021-11-9 09:02

小白路过,谢谢分享经验,讨论有益。

平淡最真 发表于 2021-11-9 09:44

每下载一张就加数据库,解决所有。

Prozacs 发表于 2021-11-9 09:50

楼上正解。入库解决一切重复。

mscsky 发表于 2021-11-9 10:04

用列表查看不就行了?才几万个图片就卡?不开缩略图就行

onlyclxy 发表于 2021-11-9 10:29

mscsky 发表于 2021-11-9 10:04
用列表查看不就行了?才几万个图片就卡?不开缩略图就行

这次不是缩略图的事, 实测xnview打开一张照片会卡住10分钟. 但是卡完了可以点下一张
别的看图软件集体阵亡. 无法点查看下一张图片
页: [1] 2 3
查看完整版本: python下载巨量文件时,怎么分类文件夹好?