Duyệt các thư mục với hơn 100000 hình ảnh


8

Tôi có một thư mục với 322000 hình ảnh trong đó. Khi tôi đi đến thư mục đó với bất kỳ trình quản lý tệp nào, nó sẽ bị kẹt khi tải.

Làm thế nào tôi có thể đến đó và xem hoặc xóa hình ảnh?


Bạn có thể đưa ra một số phản hồi về (các) câu trả lời mà bạn đã thử, nó (hoặc một số) có hiệu quả với bạn không?
Jacob Vlijm

tất nhiên. Tôi thích diễn đàn này, nó chứa đầy các chuyên gia.
dùng22005

Tạo trước tất cả các hình thu nhỏ cho thư mục đó? Sử dụng Askubfox.com/a/201997/350004 cho điều đó.
solsTiCe

Câu trả lời:


5

Tự động chia các tệp của bạn thành một thư mục (đệ quy) với số lượng tệp tùy ý cho mỗi thư mục / thư mục / thư mục trên mỗi thư mục cao cấp

Cách dễ nhất và hiệu quả nhất IMHO là có một tập lệnh sắp xếp lại các tệp vào các thư mục, nếu cần thậm chí các lớp khác nhau của các cấp thư mục. Điều này sẽ làm cho các tập tin của bạn có thể duyệt mà không bị nghẹt nautilus.

Kịch bản dưới đây sẽ làm điều đó cho bạn. Nó sẽ tạo các thư mục với số lượng tệp tùy ý. Các thư mục này sẽ được tổ chức thành các thư mục phụ nếu chúng vượt quá một số tùy ý (giống nhau), v.v. Nói cách khác; mỗi cấp độ (phụ) sẽ có cùng số lượng tệp / thư mục con tối đa, giúp việc duyệt web dễ dàng hơn.

Mỗi thư mục đã tạo hiển thị số thư mục + số cấp phụ được tạo (trong đó, ví dụ 22_1 chỉ chứa tệp):

nhập mô tả hình ảnh ở đây

Các bài kiểm tra

Tôi đã thử nghiệm trong một thư mục gồm 300.000 tệp, để được sắp xếp lại thành từng khối (tối đa) 100 tệp, để được sắp xếp thành các thư mục cao cấp của (tối đa) 100 thư mục, v.v.
Mất ít hơn một phút trên hệ thống của tôi. Một bài kiểm tra 100.000 tệp thành các phần nhỏ hơn chỉ là vài giây.

Kịch bản

#!/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

Cách sử dụng

  1. Sao chép tập lệnh vào một thư mục trống, lưu nó dưới dạng reorganize.py
  2. Trong phần đầu, đặt đường dẫn đến thư mục của bạn, số lượng tệp mong muốn cho mỗi thư mục con (= bằng với các thư mục trên mỗi thư mục chứa).
  3. Chạy nó bằng lệnh:

    python3 /path/to/reorganize.py
    

Ghi chú

Kịch bản (vì nó là) chỉ tạo ra một cấu trúc thư mục trong đó mỗi cấp có số lượng tệp / thư mục được xác định. Nó không tính đến bất kỳ loại tổ chức nào theo tên, ngày hoặc bất cứ điều gì.


BIÊN TẬP

Theo yêu cầu trong một bình luận, một tập lệnh để di chuyển các tệp trở lại vào một thư mục phẳng sau khi xử lý các tệp.
Cách sử dụng là khá nhiều như nhau. Là thư mục, đặt cùng thư mục với tập lệnh đầu tiên, nhưng điều đó có vẻ hiển nhiên.

#!/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)

Ghi chú

Như đã đề cập trong một bình luận, tập lệnh giả định rằng không có nguy cơ xung đột tên, vì tất cả các tệp ban đầu đến từ cùng một thư mục (phẳng).


Điều này làm việc chính xác như bạn nói và nó thật tuyệt vời. cảm ơn ngài.
dùng22005

Có cách nào để di chuyển tất cả các tệp vào một thư mục không?
dùng22005

@ user22005 bạn có nghĩa là quay lại một thư mục? Tôi hiểu đó là nơi họ đến?, Nhưng có hoàn toàn. Bạn có cần một kịch bản bổ sung? Chỉ cần đề cập đến nó :).
Jacob Vlijm

chính xác. Tôi cần một kịch bản để di chuyển tất cả các tệp đó trở lại vị trí của chúng.
dùng22005

@ user22005 để đảm bảo: thư mục ban đầu có "phẳng" (không có thư mục con) không?
Jacob Vlijm

4

Đây là một vấn đề trong trình quản lý tệp nautiluskhi làm việc với các thư mục chứa số lượng lớn tệp, điều này được mô tả trong lỗi này .

Tôi khuyên bạn trong trường hợp này nên sử dụng một số Trình quản lý tệp nhanh. bạn có thể sử dụng gnome-commandernhanh gấp 5 lần đến 6 lần so với nautilus và tỷ lệ này sẽ lớn hơn khi xử lý số lượng lớn tệp. Nó không phải là GUI đẹp nhưng nó sẽ giúp bạn khắc phục vấn đề của mình.

Để cài đặt nó:

sudo apt-get install gnome-commander

Bây giờ hãy mở thư mục với số lượng lớn tệp:

gnome-commander /path-to-dir

Điều này đã không cung cấp cho tôi Chế độ xem hình thu nhỏ mà tôi cần để xem và xóa hình ảnh.
dùng22005

1

Tôi không có bất kỳ kinh nghiệm cá nhân nào với các thư viện lớn như vậy, nhưng tôi đã nghe rất rõ về cá heo.

Cá heo là trình quản lý tệp được sử dụng trong các bản phân phối KDE như Kubfox. Bạn có thể cài đặt nó và chạy nó tốt trên Ubuntu Desktop, mặc dù dấu chân có thể khá lớn, vì nó phải tải xuống và cài đặt rất nhiều phụ thuộc KDE.

Tải xuống Trình quản lý tệp cá heo

Một cách tiếp cận khác có thể là sử dụng máy quang. Tôi cho rằng các công cụ như vậy sẽ được tối ưu hóa để hiển thị các bộ sưu tập lớn.

Đối với photomanager có khá nhiều lựa chọn thay thế, nhưng một vài cái phổ biến là:

Shotwell , DigikamF-Spot


1

Tôi đã thử trình quản lý tập tin Thunar với hình ảnh theo thứ tự 10.000. Hiển thị hình thu nhỏ khá nhanh trên các ổ đĩa cục bộ và cũng mở ổ đĩa mạng nhưng chậm hơn nhiều. Tôi đã không thử nó cho một số lượng lớn hơn các tập tin, mặc dù. Nhưng ít nhất, nó làm việc tốt hơn Nautilus rất nhiều mà không ảnh hưởng đến giao diện đồ họa

sudo apt-get install thunar

Ngoài ra còn có một tập lệnh để biến nó thành Trình quản lý tệp mặc định của bạn (nếu bạn thích nó). Bạn có thể tìm thấy kịch bản ở đây:

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


0

Bạn có thể đi qua thiết bị đầu cuối đến thư mục đó, làm gnome-open image.jpghoặc xdg-open image.jpg, sẽ mở một trong những hình ảnh có gnome-image-viewerhoặc thường được gọi là eye of gnome(eog). Tiếp theo, nếu bạn nhấn F9hoặc đi đến Xem -> Thư viện hình ảnh, bạn có thể xem trước hình thu nhỏ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.