Journalist and Web Developer
Journalist and Web Developer
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.
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.
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.