Memindahkan Banyak Foto di Berbagai Folder ke Dalam Satu Folder Dengan Python

Sejak memegang handphone Android 2010 lalu, saya rajin menyimpan foto-foto ke dalam Aplikasi Google Foto. Tentu saja foto-foto yang penting seperti foto keluarga.

Namun lambat laun, foto-foto tersebut semakin banyak jumlahnya dan harus menggunakan resource penyimpanan yang besar.

Jumlah penyimpanan gratis yang ditawarkan oleh Google tak lagi mencukupi, yang berarti saya harus membeli paket langganan bulanan untuk bisa terus menyimpan foto.

Saya pikir ini tampak boros, sementara saya bisa membuat sendiri Drive penyimpanan foto secara online. Akhirnya saya memutuskan untuk berhenti berlangganan Google Drive.

Sebelum Google menghapus semua foto, mereka menyarankan untuk membackup secara lokal supaya tidak kehilangan data.

Akhirnya saya melakukan download semua fotonya. Tetapi itu tidak terjadi langsung. Jika kita ingin mendownload semua foto, Google harus menyiapkan foto-foto tersebut selama beberapa hari. Setelah pengajuan ke pihak Google, mereka akan memberitahu kita melalui email setelah foto siap di unduh.

Foto Hasil Unduhan Google Drive

Sayangnya, ketika saya telah berhasil mengunduh seluruh foto, Google juga menyertakan file lain berekstensi .json. JSON adalah format file standar terbuka yang menyediakan data dalam format yang dapat dibaca manusia. File tersebut ternyata jumlahnya sesuai dengan jumlah foto yang ada. Misal fotonya ada 10.000, maka file .json juga ada 10.000.

move image with python 2
Unduh Google Drive: Setiap file foto diikuti dengan file .json

Google juga mengkategorikan foto-foto kita berdasarkan folder seperti folder per tahun atau folder per album.

Jika ingin melihat semuanya rasanya akan susah karena harus membuka satu persatu folder yang di dalamnya ada foto dan file .json.

Akhirnya saya memakai python untuk membantu mengambil semua file foto, untuk kemudian dikumpulkan menjadi satu folder saja tetapi mengabaikan file .json. Jadi hanya gambar yang dikumpulkan.

Kode Python Untuk Memindahkan Banyak File Gambar yang ada di dalam Banyak Folder ke Hanya Satu Folder

Kode tersebut telah berhasil saya terapkan. Berikut kodenya

import os
import shutil

def move_files_to_single_folder(source_dir, destination_dir):
    try:
        # Buat folder tujuan jika belum ada
        if not os.path.exists(destination_dir):
            os.makedirs(destination_dir)
            print(f"Folder tujuan dibuat: {destination_dir}")
        
        # Iterasi melalui semua file dan folder di dalam folder sumber
        for root, dirs, files in os.walk(source_dir):
            for file in files:
                # Periksa apakah file adalah gambar atau media (ekstensi yang umum)
                if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff', '.mp4', '.mp3')):
                    # Dapatkan path lengkap file sumber
                    source_file_path = os.path.join(root, file)
                    
                    # Cek jika file dengan nama yang sama sudah ada di folder tujuan
                    destination_file_path = os.path.join(destination_dir, file)
                    if os.path.exists(destination_file_path):
                        # Tambahkan nomor urutan jika ada file duplikat
                        base, extension = os.path.splitext(file)
                        counter = 1
                        while os.path.exists(destination_file_path):
                            destination_file_path = os.path.join(destination_dir, f"{base}_{counter}{extension}")
                            counter += 1
                    
                    # Pindahkan file ke folder tujuan
                    shutil.move(source_file_path, destination_file_path)
                    print(f"Memindahkan {source_file_path} ke {destination_file_path}")

        print("Proses pemindahan selesai.")

    except Exception as e:
        print(f"Terjadi kesalahan: {e}")

if __name__ == "__main__":
    # Minta input dari pengguna untuk folder sumber dan tujuan
    source_directory = input("Masukkan path folder sumber: ")
    destination_directory = input("Masukkan path folder tujuan: ")

    # Panggil fungsi untuk memindahkan file
    move_files_to_single_folder(source_directory, destination_directory)

Jika ingin menggunakannya juga, silakan simpan kode tersebut ke dalam notepad dengan akhiran nama .py.

move image with python 4
Foto yang sudah berhasil dipindahkan dengan Python

Penjelasan:

  • Setelah menjalankan skrip, Anda akan diminta untuk memasukkan path folder sumber dan tujuan. Pastikan Anda memasukkan path yang benar. Pengecekan dan Pembuatan Folder Tujuan: Skrip akan membuat folder tujuan jika belum ada dan mencetak pesan konfirmasi.
  • Iterasi dan Pemindahan File: Skrip akan mengiterasi semua file di folder sumber dan subfoldernya, memeriksa apakah file adalah gambar atau media, dan kemudian memindahkannya ke folder tujuan. Jika ada file dengan nama yang sama, skrip akan menambahkan nomor urutan untuk menghindari penimpaan.
  • Pesan Diagnostik: Skrip akan mencetak pesan setiap kali memindahkan file dan saat proses selesai. Jika terjadi kesalahan, skrip akan mencetak pesan kesalahan yang terperinci.
  • Dengan kode ini, Anda dapat memindahkan file gambar dan media dari berbagai folder ke satu folder tujuan dengan mudah.
Share your love

Update Artikel

Masukkan alamat email Anda di bawah ini untuk berlangganan artikel saya.