Проблема заключается в том, что, если файл уже существует, вы не открываете файл или не назначаете имя файла в качестве ключа в dict, следовательно, исключение KeyError
.
Попробуйте вместо этого:
# open file if not yet open
files_dict.setdefault(filename, open(filename,'w'))
files_dict[filename].write("test")
Это открывает файл в режиме записи, если имя файла еще не существует в dict, и сохраняет обработчик в dict с именем файла в качестве ключа.Обратите внимание, что файлы, которые уже существуют , но еще не назначены для dict, будут перезаписаны.
Если вы выполняете только одну запись, вы можете объединить строки, так как setdefault
будетвернуть значение, назначенное клавише.
files_dict.setdefault(filename, open(filename,'w')).write("test")