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

Linda Hamilton
Lepaskan: 2024-10-29 02:35:29
asal
900 orang telah melayarinya

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

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

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

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!

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