Получить файлы из указанных c папок в python - PullRequest
1 голос
/ 11 июля 2020

У меня следующая структура каталогов со следующими файлами:

Folder_One
├─file1.txt
├─file1.doc
└─file2.txt
Folder_Two
├─file2.txt
├─file2.doc
└─file3.txt

Я хотел бы получить только файлы .txt из каждой указанной папки. Пример:

Folder_One-> file1.txt and file2.txt
Folder_Two-> file2.txt and file3.txt

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

path_dataset = "./dataset/"
filedataset = os.listdir(path_dataset)
    
    for i in filedataset:
        pasta = ''
        pasta = pasta.join(i) 
        for file in glob.glob(path_dataset+"*.txt"):
            print(file)

Ответы [ 2 ]

5 голосов
/ 11 июля 2020
from pathlib import Path

for path in Path('dataset').rglob('*.txt'):
    print(path.name)

Использование glob

import glob
for x in glob.glob('dataset/**/*.txt', recursive=True):
    print(x)
1 голос
/ 11 июля 2020

Вы можете использовать модуль re, чтобы проверить, что имя файла заканчивается на .txt.

import re
import os
path_dataset = "./dataset/"
l = os.listdir(path_dataset)

for e in l:
   if os.path.isdir("./dataset/" + e):
      ll = os.listdir(path_dataset + e)
      for file in ll:
          if re.match(r".*\.txt$", file):
              print(e + '->' + file)
...