Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencari Fail dalam Python Secara Rekursif Menggunakan `pathlib`, `glob` dan `os.walk`?

Bagaimanakah Saya Boleh Mencari Fail dalam Python Secara Rekursif Menggunakan `pathlib`, `glob` dan `os.walk`?

DDD
Lepaskan: 2024-12-11 20:16:15
asal
311 orang telah melayarinya

How Can I Recursively Find Files in Python Using `pathlib`, `glob`, and `os.walk`?

Mencari Fail Secara Rekursif: Meneroka pathlib.rglob(), glob.glob(), dan os.walk()

Apabila berurusan dengan struktur direktori yang kompleks, menjadi penting untuk mencari fail secara rekursif. Tugasan ini boleh dipermudahkan menggunakan pelbagai modul dan kaedah Python.

Satu pendekatan ialah menggunakan pathlib.Path().rglob() yang diperkenalkan dalam Python 3.5. Ia membenarkan carian fail rekursif yang mudah:

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)
Salin selepas log masuk

Sebagai alternatif, glob.glob() menyediakan pilihan lain untuk penyenaraian fail rekursif:

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename)
Salin selepas log masuk

Kaedah ini juga menyokong fail yang sepadan bermula dengan titik (.).

Untuk versi Python yang lebih lama atau apabila kelajuan adalah penting, os.walk() menawarkan penyelesaian yang boleh dipercayai:

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))
Salin selepas log masuk

Dengan memilih kaedah yang sesuai berdasarkan versi Python dan keperluan prestasi anda, anda boleh menyenaraikan fail secara rekursif dengan berkesan dalam direktori dan subdirektori.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Fail dalam Python Secara Rekursif Menggunakan `pathlib`, `glob` dan `os.walk`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan