Открытие нескольких файлов и их назначение в словарь

89
7

Я хочу открыть несколько файлов в Python и назначить их словарю в качестве значений. Я могу открыть каждую из них с помощью функции open() но что, если бы у меня было 1000 файлов?! Его что-то вроде этого, но мне нужен цикл, чтобы открыть эти файлы и назначить их в словарь документов! Интересно, может ли кто-нибудь помочь мне.

f1 = open('doc1.txt', 'r').read()
f2 = open('doc2.txt', 'r').read()
f3 = open('doc3.txt', 'r').read()
f4 = open('doc4.txt', 'r').read()
f5 = open('doc5.txt', 'r').read()
f6 = open('doc6.txt', 'r').read()
f7 = open('doc7.txt', 'r').read()
f8 = open('doc8.txt', 'r').read()
f9 = open('doc9.txt', 'r').read()
f10 = open('doc10.txt', 'r').read()

documents = {'doc1':f1, 'doc2':f2, 'doc3':f3, 'doc4':f4, 'doc5':f5, 'doc6':f6, 'doc7':f7, 'doc8':f8, 'doc9':f9, 'doc10':f10}

спросил(а) 2021-01-19T15:21:33+03:00 6 месяцев назад
1
Решение
77

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

documents = {}
for i in range(1, 11):
i = str(i)
with open('doc' + i + '.txt') as f: # This closes the files when done.
documents['doc' + i] = f.read()

Имейте в виду, что словарь documents будет потреблять много памяти, если файлы большие. Было бы лучше всего открыть и прочитать их по одному, а не сразу.

ответил(а) 2021-01-19T15:21:33+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема