«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу использовать Python для эффективного поиска файлов в нескольких каталогах?

Как я могу использовать Python для эффективного поиска файлов в нескольких каталогах?

Опубликовано 8 ноября 2024 г.
Просматривать:565

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

Найти файл в Python

Поиск файлов в Python может стать проблемой, если расположение файла в разных системах различается. К счастью, Python предоставляет модуль os.walk, который позволяет вам легко перемещаться по каталогам и находить файлы.

os.walk для поиска файлов

os.walk создает генератор объект, который перебирает каталог и его подкаталоги, получая три кортежа для каждой итерации:

  • root (str): абсолютный путь к текущий каталог
  • dirs (список): список подкаталогов в текущем каталоге
  • files (список): список файлов в текущем каталоге

Поиск одного файла

Чтобы найти первое вхождение определенного файла, просто переберите полученные кортежи и проверьте, соответствует ли имя файла в списке файлов:

import os

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

Поиск всех вхождений файла

Чтобы найти все вхождения файла, создайте список для хранения совпадений :

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

Соответствие шаблонам файлов

Для поиска файлов, соответствующих шаблону, используйте модуль fnmatch:

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')
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3