Користувальницькькі налаштування

Налаштування сайту


python

Це стара версія документу!


Чтение из архивов

Для экономии места большие текстовые файлы с данными можно упаковывать в архив, а затем из программы на Питоне считывать нужные файлы прямо из архива. Например, если имеется папка data_files, в которой файлы data1.txt, data2.csv, data3.dat, … то её можно запаковать в ZIP-архив

zip data_files.zip data_files

после чего открывать файлы данных следующим образом1):

data_zipfile = zipfile.ZipFile('data_files.zip','r')
data_file = data_zipfile.open('data_files/data1.txt')

Узнать, какие файлы содержатся в ZIP-архиве можно так:

data_zipfile.namelist()

Далее можно производить считывание, как из обычного файла методами read(), readline() или readlines().

Аналогично можно создать tar.gz или tar.bz2 архивы2):

tar -cvzf data_files.tar.gz data_files

или

tar -cvjf data_files.tar.bz2 data_files

и обращаться к файлам в них так:

data_tar = tarfile.open("data_files.tar.gz")
data_file = data_tar.extractfile(data_files/data2.csv)

или

data_tar = tarfile.open("data_files.tar.bz2")
data_file = data_tar.extractfile(data_files/data3.dat)

Следует обратить внимание, что при обращении к файлу внутри архива нужно указывать полный путь к файлу внутри архива, ведь в архиве могут храниться каталоги с файлами или вложенными каталогами, и файл может располагаться в каком-либо из них.

Чтобы узнать, какие файлы находятся внутри TAR-архива, служит функция:

data_tar.getnames()

Ссылки

python.1404826044.txt.bz2 · В останнє змінено: 2014/07/08 16:27 by wombat