浏览超过100000张图像的文件夹
我有一个包含322000图像的文件夹。 当我使用任何文件管理器访问该文件夹时,它会陷入加载状态。
我怎样去那里查看或删除图片?
自动将文件划分为(递归)目录,每个上级文件夹的每个(子)文件夹/文件夹具有任意数量的文件
最简单和恕我直言最有效的方法是让脚本将文件重新组织到文件夹中,如果需要甚至不同的目录级别层。 这将使您的文件可浏览,而不会窒息鹦鹉螺。
下面的脚本将为您完成。 它将创建具有任意数量文件的文件夹。 如果它们超过(相同的)任意数字等,则这些文件夹将被组织成子文件夹。换句话说; 每个(子)级别将具有相同的最大文件/子目录数,使浏览变得容易。
每个创建的文件夹显示文件夹编号+创建的子级别数(例如22_1仅包含文件):
考试
我测试了一个300.000文件的目录,要重新组织成(最多)100个文件的块,组织成(最多)100个文件夹等的高级目录。
我的系统花了不到一分钟。 将100.000个文件测试成较小的块只需几秒钟。
剧本
#!/usr/bin/env python3 import subprocess import os import shutil #--- set the directory to reorganize below dr = "/path/to/directory" #--- set the number of files/folders per level size = 100 level = 0 def move(fn, drn, level): folder = dr+"/"+str(drn)+"_"+str(level) if not os.path.exists(folder): os.mkdir(folder) shutil.move(dr+"/"+f, folder+"/"+f) while len(os.listdir(dr)) > size: level += 1 fn = 0; drn = 1 for f in os.listdir(dr): if fn < size: move(fn, drn, level) else: fn = 0 drn += 1 move(fn, drn, level) fn += 1
如何使用
- 将脚本复制到空文件夹中,将其另存为
reorganize.py
- 在head部分中,设置目录的路径,每个子目录所需的文件数(=等于每个包含目录的文件夹)。
-
通过命令运行它:
python3 /path/to/reorganize.py
注意
脚本(实际上)只是创建一个目录结构,其中每个级别都有一定数量的文件/文件夹。 它没有按名称,日期或其他方式考虑任何类型的组织。
编辑
根据注释中的请求,在处理完文件后将文件移回一个平面目录的脚本。
用法几乎相同。 作为目录,设置与第一个脚本相同的目录,但这似乎很明显。
#!/usr/bin/env python3 import shutil import os #--- set the directory, the same as the first script dr = "/path/to/directory" #--- # move the files back for root, dirs, files in os.walk(dr): for file in files: shutil.move(root+"/"+file, dr+"/"+file) # remove the (now empty) subdirectories for d in os.listdir(dr): folder = dr+"/"+d if os.path.isdir(folder): shutil.rmtree(folder)
注意
正如评论中所提到的,该脚本假定不存在名称冲突的风险,因为所有文件最初都来自同一(平面)目录。
在处理包含大量文件的目录时,这是文件管理器nautilus
中的一个问题,这在此错误中有所描述。
在这种情况下,我建议你使用一些快速的文件管理器。 你可以使用gnome-commander
它比nautilus快5到6倍,这个比例在处理大量文件时会变得更大。 它不是那么漂亮的GUI,但它应该可以帮助您解决问题。
要安装它:
sudo apt-get install gnome-commander
现在打开包含大量文件的目录:
gnome-commander /path-to-dir
我对图书馆没有任何个人经验,但我听说海豚很好。
Dolphin是KDE发行版中使用的文件管理器,如Kubuntu。 您可以安装它并在Ubuntu桌面上运行它,虽然占用空间可能非常大,因为它必须下载并安装许多KDE依赖项。
下载Dolphin文件管理器
另一种方法可能是使用光学管理器。 我认为这些工具将被优化以显示大型集合。
对于光管理者来说,有很多替代方案,但有几种流行的方法是:
Shotwell , Digikam和F-Spot
您可以通过终端到该文件夹,执行gnome-open image.jpg
或xdg-open image.jpg
,它应该使用gnome-image-viewer
或更常见eye of gnome
(eog)之eye of gnome
打开其中一个图像。 接下来,如果您点击F9或转到视图 – >图库,您可以预览缩略图。
我尝试了Thunar文件管理器,图像大小为10,000。 在本地驱动器上相当快地显示缩略图并打开网络驱动器但速度要慢得多。 不过,我还没有尝试过更多的文件。 但至少,它在不损害图形界面的情况下比Nautilus做得好得多
sudo apt-get install thunar
还有一个脚本,使其成为您的默认文件管理器(如果您喜欢它)。 你可以在这里找到脚本: