logo

Python – список файлів у каталозі

Іноді під час роботи з файлами на Python виникає проблема, як отримати всі файли в каталозі. У цій статті ми розглянемо різні способи як перерахувати всі імена файлів у каталозі в Python.

Виконання операцій з файлами є обов’язковим навиком для програмістів. Вивчення операцій з файлами за допомогою Python допомагає керувати файлами, інтегрувати файли з вашими програмами, створювати реальні програми тощо. Ми розглянемо найфундаментальнішу концепцію переліку всіх файлів у певному каталозі.



Ми розглянемо два модулі та їхні відповідні функції для цього підручника щодо переліку імен файлів і деталей у каталозі.

Що таке каталог у Python?

Каталог, іноді відомий як папка, — це одиниця організаційної структури у файловій системі комп’ютера для зберігання та пошуку файлів або кількох папок. Тепер Python підтримує кілька API для перерахування вмісту каталогу. Наприклад, ми можемо використовувати функції Path.iterdir, os.scandir, os.walk, Path.rglob або os.listdir.

Використовуваний каталог: gfg



Файли в каталозі

Як створити список файлів у каталозі в Python

Існує кілька способів перерахувати всі файли в каталозі. У цій статті ми обговоримо наведені нижче модулі та їхні функції для отримання списку файлів у каталозі. Ми розглянемо загалом 5 способів із прикладами перевірки списку файлів у каталозі.

  1. Використання Модуль ОС
  2. Використання glob модуль

Перелік файлів у каталозі за допомогою модуля Os у Python

Ми можемо використовувати ці 3 методи Модуль ОС , щоб отримати список файлів у каталозі.



  • os.listdir() метод
  • os.walk() метод
  • os.scandir() метод

Використання методу os.listdir() для отримання списку файлів

os.listdir() метод отримує список усіх файлів і каталогів у вказаному каталозі. За замовчуванням це поточний каталог. За межами першого рівня папок os.listdir() не повертає жодних файлів чи папок.

Синтаксис : os.listdir(шлях)

Параметри :

  • шлях : шлях до каталогу

Тип повернення : повертає список усіх файлів і каталогів у вказаному шляху

Приклад 1: отримати список усіх файлів у каталозі

У цьому прикладі модуль OS імпортується для взаємодії з операційною системою. Функція listdir використовується для отримання списку всіх файлів і каталогів у вказаному шляху (C://Users//Vanshi//Desktop//gfg). Потім результат друкується з іменами файлів і каталогів, наявних у вказаному місці.

Python3




# import OS module> import> os> # Get the list of all files and directories> path>=> ' C://Users//Vanshi//Desktop//gfg '> dir_list>=> os.listdir(path)> print>(>'Files and directories in ''>, path,>'' :'>)> # prints all files> print>(dir_list)>

весняна хмара

>

>

Вихід:

Приклад 2: отримати всі файли без папок

У цьому прикладі програма Python запитує у користувача шлях до папки, перераховує та друкує файли в цьому каталозі, використовуючи модуль os для взаємодії з каталогом і фільтрації файлів із отриманого списку.

Python3

мережева операційна система




import> os> print>(>'Python Program to print list the files in a directory.'>)> Direc>=> input>(r>'Enter the path of the folder: '>)> print>(f>'Files in the directory: {Direc}'>)> files>=> os.listdir(Direc)> # Filtering only the files.> files>=> [f>for> f>in> files>if> os.path.isfile(Direc>+>'/'>+>f)]> print>(>*>files, sep>=>' '>)>

>

>

Приклад 3: отримати з каталогу лише файли «.txt».

У цьому прикладі сценарій Python використовує модуль os для перебору файлів у поточному каталозі. Він вибірково друкує лише назви файлів, які закінчуються на .txt, фактично перераховуючи текстові файли, наявні в каталозі.

Python3




# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

Вихід:

Використання методу os.walk() для доступу до файлів у дереві каталогу

OS.walk() генерує імена файлів у дереві каталогів. Ця функція повертає список файлів у структурі дерева. Метод проходить циклом по всіх каталогах у дереві.

Синтаксис: os.walk(верх, зверху вниз, onerror, переходити за посиланнями )

Параметри:

  • зверху: Це верхній каталог, з якого ви хочете отримати імена файлів і папок компонентів.
  • з верху до низу: Вказує, що каталоги мають скануватися зверху вниз, якщо встановлено значення True. Якщо цей параметр має значення False, каталоги перевірятимуться зверху вниз.
  • onerror: Він надає обробник помилок у разі виявлення помилки
  • переходити за посиланнями : якщо встановлено значення True, відвідує папки, на які посилаються системні посилання

Повернення: повертає назву кожного файлу та папки в каталозі та будь-яких його підкаталогах.

Приклад: отримати лише файли «.txt» у каталозі

У цьому прикладі сценарій Python використовує модуль os для проходження файлів у вказаному каталозі (C://Users//Vanshi//Desktop//gfg) і його підкаталогах. Він визначає та друкує назви файлів із розширенням .txt, заповнюючи змінну списку потрібними текстовими файлами.

Python3




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,>file>)>in> os.walk(path):> >for> f>in> file>:> >if> '.txt'> in> f:> >print>(f)>

>

>

Вихід:

10 у степені 6

Використання методу os.scandir() для переліку файлів у каталозі

os.scandir() є ефективною версією функції os.listdir(). Пізніше він був випущений Python і підтримується для Python 3.5 і вище.

Синтаксис: os.scandir(шлях)

Параметр:

  • шлях- Шлях до каталогу.

Тип повернення: повертає ітератор об’єкта os.DirEntry.

Приклад: список усіх файлів і каталогів у каталозі.

У цьому прикладі сценарій Python використовує модуль os для перерахування файлів і каталогів у вказаному шляху (C://Users//Vanshi//Desktop//gfg). Він використовує os.scandir() для отримання ітератора об’єктів os.DirEntry, що представляють записи в каталозі.

альтернативи watchcartoononline.io

Python3




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj>=> os.scandir()> # List all files and directories in the specified path> print>(>'Files and Directories in '% s':'> %> path)> for> entry>in> obj:> >if> entry.is_dir()>or> entry.is_file():> >print>(entry.name)>

>

>

Вихід:

Список файлів у каталозі за допомогою модуля glob у Python

The глоб модуль отримує файли/назви шляхів, які відповідають заданому шаблону. Нижче наведено способи, за допомогою яких ми можемо створити список файлів у каталозі за допомогою модуля glob:

  • glob() метод
  • iglob() метод

Використання методу glob() для отримання всіх файлів у каталозі

с глоб , ми можемо використовувати символи підстановки (*, ?, [діапазони]) щоб зробити пошук шляху більш простим і зручним.

Синтаксис: glob.glob(шлях, *, recursive=False)

Параметри:

  • шлях : шлях до каталогу або шаблон для відповідності.
  • рекурсивний (Необов’язково): логічний параметр (за замовчуванням встановлено значення помилковий ), що вказує, чи має пошук бути рекурсивним, тобто чи має він включати підкаталоги.

Повернення:

  • Список відповідних шляхів до файлів

Приклад: зіставлення та друк файлів Python за допомогою методу glob().

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print>(>' Named with wildcard *:'>)> for> files>in> glob.glob(path>+> '*'>):> >print>(files)> # Using '?' pattern> print>(>' Named with wildcard ?:'>)> for> files>in> glob.glob(path>+> '?.txt'>):> >print>(files)> # Using [0-9] pattern> print>(>' Named with wildcard ranges:'>)> for> files>in> glob.glob(path>+> '/*[0-9].*'>):> >print>(files)>

>

>

Вихід:

Використання методу iglob() для переліку файлів у каталозі

iglob() метод можна використовувати для рекурсивного друку імен файлів, якщо для параметра recursive встановлено значення True. Це використовується для великих каталогів, оскільки це ефективніше, ніж метод glob().

Синтаксис: glob.iglob(шлях, *, recursive=False)

Параметр:

  • шлях = Шлях до каталогу.
  • рекурсивний (необов'язковий)= Логічний параметр (за замовчуванням встановлено значення помилковий ), що вказує, чи має пошук бути рекурсивним, тобто чи має він включати підкаталоги.

Повернення: Ітератор відповідних шляхів до файлів

Приклад: надрукувати шляхи, які відповідають указаному шаблону в каталозі.

У цьому прикладі сценарій Python використовує модуль glob для пошуку та друку шляхів, які відповідають указаному шаблону (C:UsersVanshiDesktopgfg***.txt). Він використовує glob.iglob() для повернення ітератора, який потім використовується для друку шляхів до всіх текстових файлів, присутніх у вказаному каталозі та його підкаталогах.

java математика

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print>(>' Using glob.iglob()'>)> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive>=>True>):> >print>(>file>)>

>

>

Вихід:

Це 5 способів, якими ви можете скористатися для отримання інформації про файли та каталоги в каталозі. Python надав кілька вбудованих методів, які можна використовувати для визначення файлів у каталозі. Цей підручник показав прості методи з прикладами, щоб зрозуміти, як отримати списки файлів за допомогою модуля os і модуля glob.

Схожі слова:

  • Список файлів у каталозі з розширенням
  • Перерахувати всі файли певного типу в каталозі за допомогою Python
  • Перелік каталогів і файлів у Python
  • Отримати список файлів у каталозі з розміром
  • Обробка файлів у Python