Как с помощью модуля `os` получить список всех файлов и директорий в указанной директории?

Для получения списка всех файлов и директорий в указанной директории с помощью модуля os, можно использовать функцию os.listdir().
Например:
  
  import os

  path = "/путь/к/директории"
  elements = os.listdir(path)

  print(elements)
  
  
Функция вернет список строк, содержащих имена всех файлов и поддиректорий в указанной директории.

Для получения списка всех файлов и директорий в указанной директории с помощью модуля os в Python, можно использовать функцию os.listdir() или os.scandir(). os.listdir() возвращает простой список строк, содержащих имена файлов и директорий. os.scandir() возвращает итератор объектов os.DirEntry, которые содержат больше информации о каждом файле или директории (например, тип, размер и т.д.).

Вот пример с использованием os.listdir():


import os

def get_files_and_directories_listdir(path):
  """
  Получает список всех файлов и директорий в указанной директории,
  используя os.listdir().
  """
  try:
    return os.listdir(path)
  except FileNotFoundError:
    print(f"Директория '{path}' не найдена.")
    return None
  except OSError as e:
    print(f"Ошибка при работе с директорией: {e}")
    return None

# Пример использования:
directory_path = "/path/to/your/directory" # Замените на ваш путь
items = get_files_and_directories_listdir(directory_path)

if items:
  print(f"Файлы и директории в '{directory_path}':")
  for item in items:
    print(item)

  

Вот пример с использованием os.scandir():


import os

def get_files_and_directories_scandir(path):
  """
  Получает список всех файлов и директорий в указанной директории,
  используя os.scandir().
  """
  try:
    with os.scandir(path) as entries:
      return [entry.name for entry in entries]
  except FileNotFoundError:
    print(f"Директория '{path}' не найдена.")
    return None
  except OSError as e:
    print(f"Ошибка при работе с директорией: {e}")
    return None

# Пример использования:
directory_path = "/path/to/your/directory" # Замените на ваш путь
items = get_files_and_directories_scandir(directory_path)

if items:
  print(f"Файлы и директории в '{directory_path}':")
  for item in items:
    print(item)
  

Объяснение:

  • Оба примера содержат функцию, принимающую путь к директории в качестве аргумента.
  • Оба примера обрабатывают исключения FileNotFoundError и OSError на случай, если директория не существует или возникла другая ошибка при работе с ней.
  • В примере с os.listdir() функция возвращает список строк с именами файлов и директорий.
  • В примере с os.scandir() функция возвращает список строк с именами файлов и директорий, извлеченных из объектов os.DirEntry. Этот метод может быть более эффективным, если вам также нужна дополнительная информация о файлах и директориях. Использование конструкции with гарантирует правильное закрытие итератора после использования.
  • В обоих примерах приводится код для вызова функции и печати результатов.

Важно: Не забудьте заменить "/path/to/your/directory" на фактический путь к директории, которую вы хотите просмотреть.

Рекомендация: Если вам нужно только имя, используйте os.listdir. Если вам нужны атрибуты файла (размер, дата изменения и т.д.) используйте os.scandir. os.scandir также часто более эффективен для больших директорий.

0