Создание словарей для каждой подпапки

Один из вариантов заключается в том, чтобы обернуть поток System.in в CloseShieldInputStream, который предотвращает его закрытие. Ваш читатель затем использовал бы CloseShieldInputStream, а не поток raw System.in.

Вот API для класса: http://commons.apache.org/io/apidocs/ орг / апач / Обще / IO / вход / CloseShieldInputStream.html

1
задан Roddy Macintyre 17 January 2019 в 16:29
поделиться

1 ответ

Я внес изменения только в первую часть, так как ваша часть извлечения описания работает.

Ниже приведена реализация Python 3. Я не пробовал, поэтому, пожалуйста, дайте мне знать, если он не работает.

import os

root_folder = r'D:/MacroInvertebrates_Stacked'
content = {}

for root, dirs, files in os.walk(root_folder):
    for subdir in dirs:
        content[os.path.join(root, subdir)] = []
    content[root] = files

list_of_dicts = []

for folder, filenames in list(content.items()):
    dict_name = string(os.path.relpath(folder, root_folder)).replace('\\', '_')
    dict_name = {}
    for filename in filenames:
        if filename.endswith('.txt'):
           with open(filename) as f:
                for line in f:
                    line = line.rstrip()
                    if line.startswith("Description"):
                        taxa = line.split()[2:3]
                        for taxon in taxa:
                            dict_name[taxon]=dict_name.get(taxon,0) +1 
    list_of_dicts.append(dict_name)

print(list_of_dicts)

list_of_dicts содержит имена словарей, соответствующие каждой подпапке с количеством отсчетов в ней.

0
ответ дан Rohith R Nair 17 January 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: