Вот проблема, с которой я сталкиваюсь:
Error: iterator should return strings, not bytes (did you open the file in text mode?)
Код, который вызывает это, выглядит примерно так:
for fileinfo in tarfile.open(filename):
f = t.extractfile(fileinfo)
reader = csv.DictReader(f)
reader.fieldnames
Кажется, проблема в том, что метод extractfile()
создает io.BufferedReader , который является очень простым файловым объектом и не имеет высокоуровневого текстового интерфейса.
Что было бы хорошим способом справиться с этим?
Я думаю о том, чтобы расшифровать байты считывателя в тексте, но мне нужно сохранить потоковую передачу, потому что эти файлы очень большие.Кодовой базой является Python 3.6, работающий в Docker / Linux.