Изучение различных методов перебора подпапок в Python

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

Методы перебора подпапок:

  1. os.listdir() с os.path.join():

    import os
    folder_path = '/path/to/folder'
    subfolders = [f for f in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, f))]
    for subfolder in subfolders:
       print(subfolder)
  2. os.scandir() с is_dir():

    import os
    folder_path = '/path/to/folder'
    subfolders = [entry.name for entry in os.scandir(folder_path) if entry.is_dir()]
    for subfolder in subfolders:
       print(subfolder)
  3. glob.glob():

    import glob
    folder_path = '/path/to/folder'
    subfolders = glob.glob(os.path.join(folder_path, '*'))
    subfolders = [f for f in subfolders if os.path.isdir(f)]
    for subfolder in subfolders:
       print(os.path.basename(subfolder))
  4. pathlib.Path.glob():

    from pathlib import Path
    folder_path = Path('/path/to/folder')
    subfolders = [subfolder.name for subfolder in folder_path.iterdir() if subfolder.is_dir()]
    for subfolder in subfolders:
       print(subfolder)
  5. Рекурсивная функция:

    import os
    def get_subfolders(folder_path):
       subfolders = []
       for entry in os.scandir(folder_path):
           if entry.is_dir():
               subfolders.append(entry.name)
               subfolders.extend(get_subfolders(entry.path))
       return subfolders
    folder_path = '/path/to/folder'
    subfolders = get_subfolders(folder_path)
    for subfolder in subfolders:
       print(subfolder)

Python предлагает несколько методов для легкого перебора подпапок. В этой статье мы рассмотрели различные методы, в том числе os.listdir(), os.scandir(), glob.glob(), pathlib.Path.glob()и рекурсивная функция. Каждый метод имеет свои преимущества и может быть выбран исходя из конкретных требований. Используя эти методы, вы можете эффективно перебирать подпапки и выполнять различные операции в своих программах Python.