Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Cara Terbaik untuk Mencari Fail Secara Rekursif dalam Python?
Mencari Fail Secara Rekursif dengan Kaedah Berbeza
Apabila mencari fail secara rekursif dalam struktur direktori, glob() mungkin bukan yang paling cekap atau pendekatan menyeluruh. Artikel ini meneroka kaedah alternatif untuk mencapai penyenaraian fail rekursif:
pathlib.Path().rglob()
Modul pathlib memperkenalkan pathlib.Path().rglob( ), yang mencari fail yang sepadan secara rekursif. Contoh:
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
glob.glob() dengan recursive=True
Untuk versi Python sebelum 3.5, glob.glob() menawarkan pilihan rekursif. Contoh:
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
os.walk()
Untuk versi Python yang lebih lama, os.walk() digabungkan dengan fnmatch.filter() menyediakan carian rekursif. Contoh:
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))
Kaedah os.walk() berulang melalui semua subdirektori, manakala fnmatch.filter() menggunakan padanan corak mudah. Pendekatan ini mungkin lebih cekap untuk direktori besar kerana overhed yang lebih rendah berbanding pathlib.
Atas ialah kandungan terperinci Apakah Cara Terbaik untuk Mencari Fail Secara Rekursif dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!