Python имеет модуль ОС, который предоставляет функции для управления файлами. Мы можем программно перечислить файлы в каталоге и подкаталоге в Python с помощью модуля ОС. В этой статье мы обсудим различные методы создания списка всех файлов в дереве каталогов.
Печать списка файлов Python
Давайте распечатаем все файлы, перечисленные в нашем текущем рабочем каталоге.
Сначала вам нужно импортировать модуль os в свой файл, а затем использовать os. listdir () .
Напишите следующий код внутри app.py файл.
# app.pyimport osprint (os.listdir (path = '.'))
Вывод
python3 app.py ['index.html', 'demo.txt', '.DS_Store', 'person .txt ',' app.json ',' DataScience.ipynb ',' ads.txt ',' example.http ',' student.csv ',' app.txt ',' __pycache__ ',' data.csv ', app.component.ts, data.json, help_examples.py, MergeSort.java, app.sql, NumPy.ipynb, TensorFlow.ipynb, data.csv.numbers ',' app.py ',' info.log ',' .ipynb_checkpoints ',' SciKit Learn.ipynb ',' .vscode ',' app .rs ',' mod.py ',' output.txt ',' data.txt ',' sample.txt ',' app.cpp ']
Получить список файлов в каталоге и подкаталогах с помощью os.listdir ()
Нам нужно рекурсивно вызвать функцию os.listdir () для подкаталогов, чтобы создать полный список файлов в заданном дерево каталогов.
См. следующий код.
# app.pyimport osdef getFiles (dirName): listOfFile = os.listdir (dirName) completeFileList = list () для файла в listOfFile: completePath = os.path.join (dirName, file), если os.path.isdir (completePath): completeFileList = completeFileList + getFiles ( completePath) else: completeFileList.append (completePath) return completeFileListdirName = '/Users/krunal/desktop/code/pyt'listOfFiles = getFiles (dirName) print (listOfFiles)
Вывод
python3 app.py ['/Users/krunal/desktop/code/pyt/index.html', '/Users/krunal/desktop/code/pyt/demo.txt ','/Users/krunal/desktop/code/pyt/.DS_Store ','/Пользователь s/krunal/desktop/code/pyt/person.txt ','/Users/krunal/desktop/code/pyt/app.json ','/Users/krunal/desktop/code/pyt/DataScience.ipynb ',' /Users/krunal/desktop/code/pyt/ads.txt ','/Users/krunal/desktop/code/pyt/example.http ','/Users/krunal/desktop/code/pyt/student.csv ', '/Users/krunal/desktop/code/pyt/app.txt', '/Users/krunal/desktop/code/pyt/__pycache__/help_examples.cpython-36.pyc', '/Users/krunal/desktop/code/ pyt/__ pycache __/mod.cpython-36. pyc ','/Users/krunal/desktop/code/pyt/data.csv ','/Users/krunal/desktop/code/pyt/app.component.ts ','/Users/krunal/desktop/code/pyt /data.json ','/Users/krunal/desktop/code/pyt/help_examples.py ','/Users/krunal/desktop/code/pyt/MergeSort.java ','/Users/krunal/desktop/code/ pyt/app.sql ','/Users/krunal/desktop/code/pyt/NumPy.ipynb ','/Users/krunal/desktop/code/pyt/TensorFlow.ipynb ','/Users/krunal/desktop/code /pyt/data.csv.numbers ','/Users/krunal/desktop/code/pyt/app.py ','/Users/krunal/desktop/code/pyt/info.log ','/Users/krunal/ рабочий стол/код/pyt/.ipynb_checkpoints/NumPy-checkpoint.ipynb ','/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/SciKit Learn-checkpoint.ipynb ','/Users/krunal/desktop/code/pyt /.ipynb_checkpoints/DataScience-checkpoint.ipynb ','/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/TensorFlow-checkpoint.ipynb ','/Users/krunal/desktop/code/pyt/SciKit Learn.ipynb ' , '/Users/krunal/desktop/code/pyt/.vscode/settings.json', '/Users/krunal/desktop/code/pyt/app.rs', '/Users/kr unal/desktop/code/pyt/mod.py ','/Users/krunal/desktop/code/pyt/output.txt ','/Users/krunal/desktop/code/pyt/data.txt ','/Users /krunal/desktop/code/pyt/sample.txt ','/Users/krunal/desktop/code/pyt/app.cpp ']
В приведенном выше коде мы определили функцию вызывается getFiles (), который принимает один аргумент с именем
Затем мы создаем список и добавляем полный путь к файлам.
Итак, он начнет итерацию по одному файлу и добавит его полный путь в список, и в конце мы получим наш полный список файлов.
Как получить список файлов в каталоге и подкаталогах с помощью os.walk ()
Python Модуль os предоставляет функцию walk () для итерации по дереву каталогов.
os.walk (path)
Функция os.walk () выполняет итерацию каталога tree при указании пути, и для каждого каталога или подкаталога он возвращает кортеж, содержащий (
, , ).
См. следующий код.
# app.pyimport osdirName = '/Users/krunal/desktop/code/pyt'listOfFiles = list () for (dirpath, dirnames, filenames) в os.walk (dirName): listOfFiles + = [os.path.join (dirpath, file) для файла в именах файлов] для elem в listOfFiles: print (elem)
Вывод
python3 app.py/Users/krunal/desktop/code/pyt/index.html/Users/krunal/desktop/code/pyt/demo.txt /Users/krunal/desktop/code/pyt/.DS_Store/Users/krunal/desktop/code/pyt/person.txt/Users/krunal/desktop/code/pyt/app.json/Users/krunal/desktop/code/ pyt/DataScience.ipynb/Users/krunal/desktop/code/pyt/ads.txt/Users/krunal/desktop/code/pyt/example.http/Users/krunal/desktop/code/pyt/student.csv/Users/ Крунал/рабочий стол/код/pyt/приложение. txt/Users/krunal/desktop/code/pyt/data.csv/Users/krunal/desktop/code/pyt/app.component.ts/Users/krunal/desktop/code/pyt/data.json/Users/krunal/ рабочий стол/код/pyt/help_examples.py/Users/krunal/desktop/code/pyt/MergeSort.java/Users/krunal/desktop/code/pyt/app.sql/Users/krunal/desktop/code/pyt/NumPy. ipynb/Users/krunal/desktop/code/pyt/TensorFlow.ipynb/Users/krunal/desktop/code/pyt/data.csv.numbers/Users/krunal/desktop/code/pyt/app.py/Users/krunal/ рабочий стол/код/pyt/info.log/Users/krunal/desktop/code/pyt/SciKit Learn.ipynb/Users/krunal/desktop/code/pyt/app.rs/Users/krunal/desktop/code/pyt/mod .py/Users/krunal/desktop/code/pyt/output.txt/Users/krunal/desktop/code/pyt/data.txt/Users/krunal/desktop/code/pyt/sample.txt/Users/krunal/desktop /code/pyt/app.cpp/Users/krunal/desktop/code/pyt/__pycache__/help_examples.cpython-36.pyc/Users/krunal/desktop/code/pyt/__pycache__/mod.cpython-36.pyc/Users /krunal/desktop/code/pyt/.ipynb_checkpoints/NumPy-checkpoint.ipynb/Users/krunal/desktop/code/pyt/.ipynb_check точки/SciKit Learn-checkpoint.ipynb/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/DataScience-checkpoint.ipynb/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/TensorFlow-checkpoint.ipynb/Users/krunal /desktop/code/pyt/.vscode/settings.json
См. следующий код.
# app.pyimport globdirName = '/Users/krunal/desktop/code/pyt'files = [f вместо f в glob.glob (dirName + "* */*. txt ", recursive = True)] для f в файлах: print (f)
Output
python3 app.py/Users/krunal/desktop/code/pyt/demo.txt/Users/krunal/desktop/code/pyt/person.txt/Users/krunal/desktop/code/pyt/ads.txt/Users/krunal/ рабочий стол/код/pyt/app.txt/Users/krunal/desktop/code/pyt/output.txt/Users/krunal/desktop/code/pyt/data.txt/Users/krunal/desktop/code/pyt/sample. txt
В приведенном выше примере мы использовали понимание списка, чтобы получить список всех файлов, в которых есть .txt.
Итак, в этом примере мы получаем только текстовые файлы, а не все файлы.
Список всех каталогов в указанном каталоге + подкаталоги (**)
См. Следующий код.
# app.pyimport globdirName = '/Users /krunal/desktop/code/pyt'folders = [f для f в glob.glob (dirName + "**/", recursive = True)] для f в папках: print (f)
Вывод
python3 app.py/Users/krunal/desktop/code/pythonenv//Users/krunal/desktop/code/pyt/
Для перечисления каталогов, подкаталогов и файлов Python имеет отличную встроенную поддержку, которая сделает всю работу за вас. Управление и обработка файлов — это повседневные операции для любого программиста.
В этой статье мы увидели, как составить список всех каталогов, подкаталогов и файлов с помощью Python os.walk (), blob.blob () и метод Python os.listdir ().
Наконец, Python выводит список всех файлов в каталоге, и пример подкаталогов окончен.
См. также
Как читать файл в Python
Как писать файл в Python
Обработка файлов в Python