Cara Mendaftar Semua File di Direktori Menggunakan Python dan Menambahkannya ke Daftar

Cara Mendaftar Semua File di Direktori Menggunakan Python dan Menambahkannya ke Daftar
Cara Mendaftar Semua File di Direktori Menggunakan Python dan Menambahkannya ke Daftar

Daftar File Direktori dengan Python

Mencantumkan semua file dalam direktori adalah tugas umum dalam pemrograman Python, baik Anda mengatur file, memproses data, atau mengotomatisasi tugas. Python menyediakan beberapa metode untuk mencapai hal ini dengan mudah dan efisien.

Pada artikel ini, kita akan mempelajari berbagai cara untuk membuat daftar semua file dalam direktori menggunakan Python dan cara menambahkannya ke daftar. Pada akhirnya, Anda akan memiliki pemahaman yang jelas tentang cara mengelola konten direktori secara terprogram dalam proyek Python Anda.

Memerintah Keterangan
os.walk(directory_path) Menghasilkan nama file di pohon direktori dengan berjalan dari atas ke bawah atau dari bawah ke atas.
os.path.join(root, file) Menggabungkan satu atau lebih komponen jalur secara cerdas, menambahkan pemisah direktori yang diperlukan.
Path(directory_path) Membuat objek Path untuk jalur direktori yang ditentukan, menyediakan berbagai metode untuk menangani jalur sistem file.
path.rglob('*') Secara rekursif menghasilkan semua file yang ada yang cocok dengan pola yang ditentukan dalam direktori.
file.is_file() Mengembalikan True jika jalurnya adalah file biasa (bukan direktori atau symlink).
str(file) Mengonversi objek Path menjadi representasi string dari jalur file.

Memahami Skrip Daftar Direktori dengan Python

Skrip pertama menggunakan os modul, khususnya os.walk(directory_path) fungsi, untuk melintasi pohon direktori. Fungsi ini menghasilkan nama file dalam pohon direktori, mulai dari direktori teratas hingga direktori daun. Dalam loop ini, kami menggunakan os.path.join(root, file) untuk menggabungkan jalur direktori dan nama file dengan benar, memastikan bahwa jalur akhir valid apa pun sistem operasinya. Jalur semua file kemudian ditambahkan ke files_list list, yang dikembalikan di akhir fungsi. Metode ini efektif untuk struktur direktori besar karena memproses file secara bertahap.

Skrip kedua menggunakan pathlib perpustakaan, yang menyediakan antarmuka berorientasi objek untuk berinteraksi dengan sistem file. Kita mulai dengan membuat a Path objek untuk direktori tertentu. Itu path.rglob('*') metode ini digunakan untuk menemukan secara rekursif semua file yang cocok dengan pola yang diberikan. Itu file.is_file() metode memeriksa apakah setiap jalur yang ditemukan adalah file biasa. Jika ya, kami mengonversinya Path objek ke string menggunakan str(file) dan menambahkannya ke files_list. Pendekatan ini lebih modern dan sering kali disukai karena keterbacaannya dan kemudahan penggunaannya. Ia juga menangani berbagai jenis jalur (seperti symlink) dengan lebih baik.

Menggunakan Python untuk Mendaftar File Direktori dan Menambahkan ke Daftar

Python - Menggunakan perpustakaan os dan os.path

import os

def list_files_in_directory(directory_path):
    files_list = []
    for root, dirs, files in os.walk(directory_path):
        for file in files:
            files_list.append(os.path.join(root, file))
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files_in_directory(directory_path)
print(files)

Mendaftar Semua File di Direktori dan Menambahkan ke Daftar dengan Python

Python - Memanfaatkan perpustakaan pathlib

from pathlib import Path

def list_files(directory_path):
    path = Path(directory_path)
    files_list = [str(file) for file in path.rglob('*') if file.is_file()]
    return files_list

# Example usage
directory_path = '/path/to/directory'
files = list_files(directory_path)
print(files)

Teknik Tingkat Lanjut untuk Daftar File Direktori dengan Python

Selain metode yang telah dibahas sebelumnya, pendekatan ampuh lainnya untuk membuat daftar file dalam direktori melibatkan penggunaan os.scandir() fungsi. Metode ini mengembalikan iterator os.DirEntry objek, yang berisi informasi tentang file dan direktori. Ini lebih efisien daripada os.listdir() atau os.walk() karena mengambil entri direktori dan atributnya dalam satu panggilan sistem. Ini bisa sangat berguna ketika berhadapan dengan direktori besar atau ketika Anda perlu memfilter file berdasarkan atributnya, seperti ukuran atau waktu modifikasi.

Teknik lanjutan lainnya melibatkan penggunaan glob modul, yang menyediakan fungsi untuk perluasan pola nama jalur. Itu glob.glob() fungsi mengembalikan daftar jalur yang cocok dengan pola tertentu. Untuk daftar file rekursif, glob.iglob() dapat digunakan dengan recursive=True parameter. Metode ini sangat efisien untuk pencocokan pola sederhana dan sering digunakan dalam alur pemrosesan data yang memerlukan jenis file tertentu untuk diproses. Selanjutnya, mengintegrasikan metode ini dengan perpustakaan pemrosesan paralel seperti concurrent.futures dapat mempercepat operasi sistem file secara signifikan dengan memanfaatkan prosesor multi-core.

Pertanyaan Umum Tentang Mendaftar File Direktori dengan Python

  1. Bagaimana saya bisa mencantumkan hanya jenis file tertentu dalam direktori?
  2. Menggunakan glob.glob('*.txt') berfungsi untuk mencocokkan dan membuat daftar file dengan ekstensi tertentu.
  3. Bagaimana cara mendapatkan ukuran setiap file saat mencantumkannya?
  4. Menggunakan os.stat(file).st_size untuk mendapatkan ukuran setiap file dalam byte.
  5. Bisakah saya mengurutkan file berdasarkan tanggal modifikasinya?
  6. Ya, gunakan os.path.getmtime(file) untuk mengambil waktu modifikasi dan mengurutkannya sesuai.
  7. Bagaimana cara mengecualikan file atau direktori tertentu?
  8. Gunakan kondisi dalam loop Anda untuk memfilter file atau direktori berdasarkan nama atau jalurnya.
  9. Apakah mungkin untuk membuat daftar file dalam arsip zip tanpa mengekstraknya?
  10. Ya, gunakan zipfile.ZipFile kelas dan itu namelist() metode untuk membuat daftar file dalam arsip zip.
  11. Bisakah saya menggunakan ekspresi reguler untuk memfilter file?
  12. Ya, gabungkan re modul dengan os.listdir() untuk memfilter file berdasarkan pola.
  13. Bagaimana cara menangani tautan simbolik saat membuat daftar file?
  14. Menggunakan os.path.islink() untuk memeriksa apakah suatu jalur adalah tautan simbolik dan menanganinya sesuai dengan itu.
  15. Bagaimana jika saya perlu membuat daftar file di server jauh?
  16. Gunakan perpustakaan seperti paramiko untuk SSH dan SFTP untuk membuat daftar file di server jauh.
  17. Bagaimana cara menghitung jumlah file dalam suatu direktori?
  18. Menggunakan len(os.listdir(directory_path)) untuk menghitung jumlah file dalam suatu direktori.

Penutup: Daftar File yang Efisien dengan Python

Kesimpulannya, Python menyediakan beberapa metode yang kuat untuk membuat daftar file dalam direktori dan menambahkannya ke daftar. Modul os adalah pilihan serbaguna untuk traversal direktori yang komprehensif, sedangkan pustaka pathlib menawarkan pendekatan berorientasi objek yang meningkatkan keterbacaan dan pemeliharaan kode. Selain itu, modul glob unggul dalam pencocokan pola dan menyederhanakan tugas pencarian file. Dengan memahami dan memanfaatkan alat-alat ini, pengembang dapat secara efisien mengelola dan memproses konten direktori dalam proyek Python mereka.