Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menggunakan Python untuk mencari fail dengan cekap merentas berbilang direktori?

Bagaimanakah saya boleh menggunakan Python untuk mencari fail dengan cekap merentas berbilang direktori?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 02:35:29821semak imbas

How can I use Python to efficiently search for files across multiple directories?

Cari Fail dalam Python

Mencari fail dalam Python boleh menjadi satu cabaran apabila lokasi fail berbeza-beza merentas sistem yang berbeza. Nasib baik, Python menyediakan modul os.walk yang membolehkan anda melintasi direktori dan mencari fail dengan mudah.

os.walk untuk Carian Fail

os.walk mencipta penjana objek yang berulang ke atas direktori dan subdirektorinya, menghasilkan tiga tupel untuk setiap lelaran:

  • root (str): Laluan mutlak ke direktori semasa
  • dir (senarai): Senarai subdirektori dalam direktori semasa
  • fail (senarai): Senarai fail dalam direktori semasa

Mencari Fail Tunggal

Untuk mencari kemunculan pertama fail tertentu, hanya lelaran di atas tupel yang dihasilkan dan semak sama ada nama fail berada dalam senarai fail:

<code class="python">import os

def find(name, path):
    for root, dirs, files in os.walk(path):
        if name in files:
            return os.path.join(root, name)</code>

Mencari Semua Kejadian Fail

Untuk mencari semua kejadian fail, buat senarai untuk menyimpan padanan:

<code class="python">def find_all(name, path):
    result = []
    for root, dirs, files in os.walk(path):
        if name in files:
            result.append(os.path.join(root, name))
    return result</code>

Corak Fail Padan

Untuk mencari fail yang sepadan corak, gunakan modul fnmatch:

<code class="python">import os, fnmatch
def find(pattern, path):
    result = []
    for root, dirs, files in os.walk(path):
        for name in files:
            if fnmatch.fnmatch(name, pattern):
                result.append(os.path.join(root, name))
    return result

find('*.txt', '/path/to/dir')</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan Python untuk mencari fail dengan cekap merentas berbilang direktori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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