Просмотр папок с более чем 100000 изображений

У меня есть папка с 322000 изображений в ней. Когда я захожу в эту папку с любым файловым менеджером, он застревает при загрузке.

Как туда зайти и посмотреть или удалить изображения?

8
задан 2 June 2015 в 10:48

5 ответов

Автоматически разделите свои файлы на (рекурсивный) каталог с произвольным числом файлов на (sub) папку / папки на превосходящую папку

самое легкое, и по моему скромному мнению самый эффективный путь состоит в том, чтобы иметь сценарий, реорганизовывают файлы в папки, если необходимо даже различные слои уровней каталога. Это сделает Ваши файлы доступными для просмотра, не дросселируя наутилус.

сценарий ниже сделает это для Вас. Это создаст папки с произвольным числом файлов. Эти папки будут организованы в sub папки, если они превысят (то же) произвольное число, и т.д. Другими словами; у каждого (под-) уровень будет то же максимальное количество файлов / подкаталоги, делая просмотр легко возможного.

Каждая из созданных папок показывает число папки + количество созданных sub уровней (где, например, 22_1 только содержит файлы):

enter image description here

тест

я протестировал в на каталоге 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

, Как использовать

  1. Копия сценарий в пустую папку, сохраняет его как reorganize.py
  2. В главном разделе, установил путь к Вашему каталогу, желаемому количеству файлов на подкаталог (= равный папкам на содержание каталога).
  3. Выполнение это командой:

    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)

Примечание

, Как упомянуто в комментарии, сценарий предполагает, что нет риска столкновений имени, так как все файлы первоначально прибыли из того же (плоского) каталога.

0
ответ дан 2 June 2015 в 10:48

Это - проблема в файловом менеджере nautilus при работе с каталогами, содержащими большое количество файлов, это описано в этом ошибка .

я советую Вам в этом случае использовать некоторый быстрый Файловый менеджер. можно использовать gnome-commander, это 5X к 6X времена быстрее, чем наутилус и это отношение становятся больше при контакте с большим количеством файлов. It не, что симпатичный GUI, но это должно помочь Вам решить свою проблему.

Для установки его:

sudo apt-get install gnome-commander

Теперь открывают каталог с большим количеством файлов:

gnome-commander /path-to-dir
0
ответ дан 2 June 2015 в 10:48

У меня нет личного опыта с библиотеками настолько большим, но я услышал хороший о дельфине.

дельфин является файловым менеджером, используемым в дистрибутивах KDE, таких как Kubuntu. Можно установить его и выполнить его очень хорошо на Рабочем столе Ubuntu, хотя место могло бы быть довольно большим, поскольку это должно загрузить и установить много зависимостей KDE.

Файловый менеджер дельфина Загрузки

Другой подход мог бы быть должен использовать фотоменеджера. Я предположил бы, что такие инструменты будут оптимизированы для отображения большого количества.

Для фотоменеджеров существует довольно много альтернатив, но несколько популярных:

Shotwell, Digikam и F-пятно

0
ответ дан 2 June 2015 в 10:48

Вы могли пройти терминал к той папке, сделать gnome-open image.jpg или xdg-open image.jpg, который должен открыть одно из изображений с gnome-image-viewer или чаще всего известный как eye of gnome (eog). Затем, если Вы поражаете F9 или переходите к Представлению-> Галерея изображений, можно предварительно просмотреть миниатюры.

0
ответ дан 2 June 2015 в 10:48

Я попробовал файловый менеджер Thunar изображениями в порядке 10 000. Миниатюры дисплеев справедливо быстро на локальных дисках и открывают сетевые диски также, но намного медленнее. Я не попробовал его за большее число файлов, все же. Но по крайней мере, это делает намного лучшее задание, чем Наутилус, не ставя под угрозу графический интерфейс

sudo apt-get install thunar

Существует также сценарий для создания этого Файловым менеджером по умолчанию (если Вам нравится он). Можно найти сценарий здесь:

https://help.ubuntu.com/community/DefaultFileManager

1
ответ дан 23 November 2019 в 05:35

Другие вопросы по тегам:

Похожие вопросы: