Вопрос-Ответ

Find all files in a directory with extension .txt in Python

Найти все файлы в каталоге с расширением .txt в Python

Как я могу найти все файлы в каталоге с расширением .txt в python?

Переведено автоматически
Ответ 1

Вы можете использовать glob:

import glob, os
os.chdir("/mydir")
for file in glob.glob("*.txt"):
print(file)

или просто os.listdir:

import os
for file in os.listdir("/mydir"):
if file.endswith(".txt"):
print(os.path.join("/mydir", file))

или, если вы хотите обойти каталог, используйте os.walk:

import os
for root, dirs, files in os.walk("/mydir"):
for file in files:
if file.endswith(".txt"):
print(os.path.join(root, file))
Ответ 2

Используйте glob.

>>> import glob
>>> glob.glob('./*.txt')
['./outline.txt', './pip-log.txt', './test.txt', './testingvim.txt']
Ответ 3

Что-то подобное должно выполнить эту работу

for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.txt'):
print(file)
Ответ 4

Вы можете просто использовать pathlibs glob 1:

import pathlib

list(pathlib.Path('your_directory').glob('*.txt'))

или в цикле:

for txt_file in pathlib.Path('your_directory').glob('*.txt'):
# do something with "txt_file"

Если вы хотите, чтобы это было рекурсивно, вы можете использовать rglob('*.txt')


Это похоже на вызов Path.glob() с добавлением “**/” перед заданным относительным шаблоном



1 pathlib Модуль был включен в стандартную библиотеку в python 3.4. Но вы можете установить обратные порты этого модуля даже в старых версиях Python (т. Е. Используя conda or pip): pathlib и pathlib2.

python