เปิดดูโฟลเดอร์ที่มีรูปภาพมากกว่า 100,000 ภาพ


8

ฉันมีโฟลเดอร์ที่มีรูปภาพ 322000 ภาพ เมื่อฉันไปที่โฟลเดอร์นั้นด้วยเครื่องมือจัดการไฟล์มันติดค้างอยู่ระหว่างการโหลด

ฉันจะไปที่นั่นและดูหรือลบภาพได้อย่างไร?


คุณสามารถให้คำติชมเกี่ยวกับคำตอบที่คุณลองใช้หรือไม่ (หรือบางส่วน) ใช้ได้สำหรับคุณ
Jacob Vlijm

แน่นอน. ฉันชอบฟอรัมนี้เต็มไปด้วยมืออาชีพ
22005

สร้างภาพขนาดย่อทั้งหมดสำหรับโฟลเดอร์นั้นล่วงหน้าหรือไม่ ใช้askubuntu.com/a/201997/350004สำหรับสิ่งนั้น
solsTiCe

คำตอบ:


5

แบ่งไฟล์ของคุณโดยอัตโนมัติเป็นไดเรกทอรี (เรียกซ้ำ) โดยมีจำนวนไฟล์ตามอำเภอใจต่อโฟลเดอร์ (ย่อย) / โฟลเดอร์ต่อโฟลเดอร์ดีกว่า

วิธีที่ง่ายและมีประสิทธิภาพมากที่สุดของ IMHO คือการจัดระเบียบไฟล์ใหม่ลงในโฟลเดอร์หากจำเป็นแม้กระทั่งเลเยอร์ต่างระดับของไดเรกทอรี นี่จะทำให้ไฟล์ของคุณสามารถเรียกดูได้โดยไม่สำลัก nautilus

สคริปต์ด้านล่างจะทำเพื่อคุณ มันจะสร้างโฟลเดอร์ที่มีจำนวนไฟล์โดยพลการ โฟลเดอร์เหล่านี้จะถูกจัดระเบียบเป็นโฟลเดอร์ย่อยหากมีจำนวนเกินกว่าจำนวนที่กำหนดไว้ (เช่นเดียวกัน) ในคำอื่น ๆ แต่ละระดับ (ย่อย) จะมีจำนวนไฟล์สูงสุด / ไดเรกทอรีย่อยเท่ากันทำให้การเรียกดูทำได้ง่าย

แต่ละโฟลเดอร์ที่สร้างขึ้นจะแสดงหมายเลขโฟลเดอร์ + จำนวนระดับย่อยที่สร้างขึ้น (เช่น 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

วิธีใช้

  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)

บันทึก

ดังที่ได้กล่าวไว้ในความคิดเห็นสคริปต์จะถือว่าไม่มีความเสี่ยงของการปะทะกันของชื่อเนื่องจากไฟล์ทั้งหมดเริ่มมาจากไดเรกทอรีเดียวกัน (flat)


มันทำงานได้ดีอย่างที่คุณพูดและมันยอดเยี่ยม ขอบคุณครับ
22005

มีวิธีการย้ายไฟล์เหล่านั้นไปไว้ในโฟลเดอร์เดียวหรือไม่?
22005

@ user22005 คุณหมายถึงกลับเข้าไปในโฟลเดอร์เดียวหรือไม่? ฉันเข้าใจว่าพวกเขามาจากไหน แต่ใช่แน่นอน คุณต้องการสคริปต์เพิ่มเติมหรือไม่ แค่พูดถึงมัน :)
Jacob Vlijm

อย่างแน่นอน ฉันต้องการสคริปต์เพื่อย้ายไฟล์เหล่านั้นกลับไปยังที่ที่พวกเขาอยู่
user22005

@ user22005 เพื่อให้แน่ใจว่า: เป็นไดเรกทอรีเริ่มต้น "แบน" (ไม่มีไดเรกทอรีย่อย) หรือไม่
Jacob Vlijm

4

นี่เป็นปัญหาในตัวจัดการไฟล์nautilusเมื่อทำงานกับไดเรกทอรีที่มีไฟล์จำนวนมากซึ่งจะอธิบายในข้อผิดพลาดนี้

ฉันแนะนำคุณในกรณีนี้ให้ใช้ตัวจัดการไฟล์อย่างรวดเร็ว คุณสามารถใช้gnome-commanderความเร็วสูงกว่าหอยโข่งถึง 5 เท่าถึง 6 เท่าและอัตราส่วนนี้จะใหญ่ขึ้นเมื่อจัดการกับไฟล์จำนวนมาก มันไม่ได้สวย GUI แต่มันจะช่วยคุณในการแก้ไขปัญหาของคุณ

วิธีติดตั้ง:

sudo apt-get install gnome-commander

ตอนนี้เปิดไดเรกทอรีที่มีไฟล์จำนวนมาก:

gnome-commander /path-to-dir

สิ่งนี้ไม่ได้ให้มุมมองรูปขนาดย่อซึ่งฉันต้องการสำหรับการดูและลบภาพ
22005

1

ฉันไม่มีประสบการณ์ส่วนตัวเกี่ยวกับห้องสมุดขนาดใหญ่ แต่ฉันเคยได้ยินปลาโลมา

Dolphin เป็นโปรแกรมจัดการไฟล์ที่ใช้ในการกระจาย KDE เช่น Kubuntu คุณสามารถติดตั้งและใช้งานได้ดีบน Ubuntu Desktop แม้ว่ารอยเท้าอาจมีขนาดค่อนข้างใหญ่เนื่องจากต้องดาวน์โหลดและติดตั้งการพึ่งพา KDE จำนวนมาก

ดาวน์โหลด Dolphin File Manager

อีกวิธีหนึ่งคือการใช้ช่างภาพ ฉันจะสมมติว่าเครื่องมือดังกล่าวจะได้รับการปรับแต่งเพื่อแสดงคอลเลกชันขนาดใหญ่

สำหรับนักถ่ายภาพมีทางเลือกค่อนข้างน้อย แต่มีสองอย่างที่ได้รับความนิยมคือ:

Shotwell , Digikamและ F-Spot


1

ฉันลองใช้ตัวจัดการไฟล์ Thunar ด้วยภาพตามลำดับ 10,000 แสดงภาพขนาดย่อบนไดรฟ์ในเครื่องอย่างรวดเร็วและเปิดไดรฟ์เครือข่าย แต่ช้ากว่ามาก ฉันยังไม่ได้ลองใช้กับไฟล์จำนวนมาก แต่อย่างน้อยมันก็ทำงานได้ดีกว่า Nautilus โดยไม่ส่งผลต่อส่วนต่อประสานกราฟิก

sudo apt-get install thunar

นอกจากนี้ยังมีสคริปต์เพื่อให้เป็นตัวจัดการไฟล์เริ่มต้น (ถ้าคุณชอบ) คุณสามารถค้นหาสคริปต์ได้ที่นี่:

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


0

คุณสามารถผ่านเทอร์มินัลไปที่โฟลเดอร์ทำgnome-open image.jpgหรือxdg-open image.jpgซึ่งควรจะเปิดหนึ่งในภาพที่มีgnome-image-viewerหรือที่รู้จักกันทั่วไปว่าเป็นeye of gnome(eog) ถัดไปถ้าคุณกดปุ่มF9หรือไปที่ View -> Image Gallery คุณสามารถดูตัวอย่างภาพขนาดย่อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.