Порядок открытия файлов при использовании tarfile.open() в Python

У меня простой вопрос, но мне не удалось найти много информации о нем или понять его очень хорошо.

Когда я открываю tar-файл в python с помощью метода tarfile.open(), как именно читаются файлы в tar-файле? У меня есть tarfile с данными о людях, у каждого человека своя папка и в этой папке его данные разбросаны по разным папкам.

Доступ к файлам будет осуществляться в зависимости от внутренней структуры или есть другой способ определить, какой файл будет доступен следующим, когда я использую tarfile.extractfile()?

заранее спасибо


person Georgi Nikolov    schedule 01.06.2015    source источник


Ответы (1)


Внутренняя структура. tar означает «ленточный архив», а большой особенностью дизайна является возможность последовательной работы с небольшой оперативной памятью при записи (или чтении) на устройство ввода-вывода с последовательным доступом (также известное как лента): загрузка всего в память, а затем обработка его в каком-то определенном порядке была невозможна. Таким образом, файлы извлекаются в том порядке, в котором они находятся в архиве, путем чтения архива по порядку.

person Amadan    schedule 01.06.2015
comment
Хорошо, спасибо за разъяснение. Означает ли это, что он начнет читать первый файл, который найдет в первой папке (в алфавитном порядке)? - person Georgi Nikolov; 01.06.2015
comment
Не по алфавиту - в порядке расположения файлов в архиве. Если и только если вы создавали архив, добавляя файлы по алфавиту, то они и выйдут по алфавиту. - person Amadan; 01.06.2015
comment
Чтобы уточнить @Amadan (и, вероятно, констатировать очевидное): если вы выполните tar tvf $TAR_ARCHIVE_PATH, вы увидите порядок файлов в архиве. - person boardrider; 02.06.2015