Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencari Fail Secara Rekursif dalam Python, Mempertimbangkan Versi Python yang Berbeza?

Bagaimanakah Saya Boleh Mencari Fail Secara Rekursif dalam Python, Mempertimbangkan Versi Python yang Berbeza?

Barbara Streisand
Lepaskan: 2024-12-11 12:22:11
asal
421 orang telah melayarinya

How Can I Recursively Find Files in Python, Considering Different Python Versions?

Mencari Fail Secara Rekursif Menggunakan Python

Mencari semua fail dalam direktori secara rekursif boleh menjadi tugas yang berharga untuk mengatur dan mengurus sistem fail. Artikel ini akan menghuraikan pendekatan alternatif untuk tugas ini, menangani batasan penggunaan glob.glob().

Pathlib.Path().rglob()

Untuk Python versi 3.5 dan lebih baru, kaedah pathlib.Path().rglob() menyediakan cara yang mudah untuk mencari fail secara rekursif. Ia membolehkan anda menavigasi direktori dan mengembalikan objek laluan untuk fail yang sepadan dengan corak yang ditentukan.

from pathlib import Path

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

Glob.glob() dengan Parameter rekursif

Sebagai alternatif, untuk versi terdahulu Python, glob.glob() menawarkan parameter rekursif yang membolehkan carian rekursif. Dengan menetapkannya kepada Benar, ia akan meneroka subdirektori dan mengembalikan fail yang sepadan.

from glob import glob

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

Os.walk() dan Fnmatch.filter()

Untuk yang lebih tua Versi Python, os.walk() dan fnmatch.filter() menyediakan cara untuk melintasi struktur direktori secara rekursif dan memadankan fail menggunakan ungkapan ringkas.

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

Pendekatan ini menawarkan prestasi yang lebih pantas berbanding pathlib, terutamanya untuk set fail yang besar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Fail Secara Rekursif dalam Python, Mempertimbangkan Versi Python yang Berbeza?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan