Merentasi struktur direktori secara rekursif untuk menyenaraikan semua fail ialah keperluan pengaturcaraan biasa. Dalam konteks ini, mari kita terokai cara untuk mencapai ini dengan cekap dalam Python.
Satu pendekatan menggunakan kaedah pathlib.Path().rglob(), yang diperkenalkan dalam Python 3.5. Ia menyediakan cara yang mudah untuk mengenal pasti semua fail yang sepadan dengan corak tertentu dalam direktori dan subdirektorinya:
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
Jika anda lebih suka menggunakan modul glob, anda boleh memanfaatkan fungsi glob()nya dengan rekursif=True argumen:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
Pilihan lain, serasi dengan versi Python yang lebih lama, melibatkan penggunaan os.walk() untuk traversal rekursif dan fnmatch.filter() untuk padanan corak:
import fnmatch import os matches = [] for root, dirnames, filenames in os.walk('src'): for filename in fnmatch.filter(filenames, '*.c'): matches.append(os.path.join(root, filename))
Teknik os.walk() mungkin terbukti lebih pantas dalam senario dengan kiraan fail yang banyak disebabkan oleh overhed yang lebih rendah yang dikaitkan dengan modul pathlib.
Mana-mana pendekatan yang anda pilih, kaedah ini akan membantu anda dalam mengenal pasti dan menyenaraikan fail secara rekursif dalam direktori tertentu dan subfolder.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyenaraikan Semua Fail Secara Rekursif dalam Direktori Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!