Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія | ||
python [2014/07/08 15:10] wombat Отркытие архивов |
python [2015/01/13 18:16] (поточний) wombat [Литература] В глубь языка Python |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
- | == Чтение из архивов == | + | ===== Приёмы ===== |
+ | |||
+ | |||
+ | ==== Чтение из архивов ==== | ||
Для экономии места большие текстовые файлы с данными можно упаковывать в архив, а затем из программы на Питоне считывать нужные файлы прямо из архива. Например, если имеется папка ''data_files'', в которой файлы ''data1.txt'', ''data2.csv'', ''data3.dat'', ... то её можно запаковать в ZIP-архив | Для экономии места большие текстовые файлы с данными можно упаковывать в архив, а затем из программы на Питоне считывать нужные файлы прямо из архива. Например, если имеется папка ''data_files'', в которой файлы ''data1.txt'', ''data2.csv'', ''data3.dat'', ... то её можно запаковать в ZIP-архив | ||
Рядок 8: | Рядок 11: | ||
<code python> | <code python> | ||
- | data_zipfile = zipfile.ZipFile('stations_data.zip','r') | + | data_zipfile = zipfile.ZipFile('data_files.zip','r') |
- | data_file = data_zipfile.open('stations_data/data1.txt') | + | data_file = data_zipfile.open('data_files/data1.txt') |
+ | </code> | ||
+ | |||
+ | Узнать, какие файлы содержатся в ZIP-архиве можно так: | ||
+ | |||
+ | <code python> | ||
+ | data_zipfile.namelist() | ||
</code> | </code> | ||
Рядок 15: | Рядок 24: | ||
Аналогично можно создать ''tar.gz'' или ''tar.bz2'' архивы((https://docs.python.org/2/library/tarfile.html#tarfile.TarFile.extractfile)): | Аналогично можно создать ''tar.gz'' или ''tar.bz2'' архивы((https://docs.python.org/2/library/tarfile.html#tarfile.TarFile.extractfile)): | ||
+ | |||
+ | tar -cvzf data_files.tar.gz data_files | ||
+ | |||
+ | или | ||
+ | |||
+ | tar -cvjf data_files.tar.bz2 data_files | ||
+ | |||
+ | и обращаться к файлам в них так: | ||
<code python> | <code python> | ||
- | data_tar = tarfile.open("stations_data.tar.gz") | + | data_tar = tarfile.open("data_files.tar.gz") |
- | data_file = data_tar.extractfile(stations_data/data2.csv) | + | data_file = data_tar.extractfile(data_files/data2.csv) |
</code> | </code> | ||
Рядок 24: | Рядок 41: | ||
<code python> | <code python> | ||
- | data_tar = tarfile.open("stations_data.tar.bz2") | + | data_tar = tarfile.open("data_files.tar.bz2") |
- | data_file = data_tar.extractfile(stations_data/data3.dat) | + | data_file = data_tar.extractfile(data_files/data3.dat) |
</code> | </code> | ||
Следует обратить внимание, что при обращении к файлу внутри архива нужно указывать полный путь к файлу внутри архива, ведь в архиве могут храниться каталоги с файлами или вложенными каталогами, и файл может располагаться в каком-либо из них. | Следует обратить внимание, что при обращении к файлу внутри архива нужно указывать полный путь к файлу внутри архива, ведь в архиве могут храниться каталоги с файлами или вложенными каталогами, и файл может располагаться в каком-либо из них. | ||
+ | |||
+ | Чтобы узнать, какие файлы находятся внутри TAR-архива, служит функция: | ||
+ | |||
+ | <code python> | ||
+ | data_tar.getnames() | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ====== Литература ====== | ||
+ | |||
+ | [[http://uk.wikibooks.org/wiki/Пориньте_у_Python_3 | Пориньте у Python 3]] - перевод известной книги "Dive into Python 3". | ||
+ | |||
+ | [[http://ru.diveintopython.net/toc.html | В глубь языка Python]] (перевод "Dive into Python" для версии 2) | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
+ | |||
+ | [[https://wiki.python.org/moin/UkranianLanguage | Матеріали українською]] | ||
https://docs.python.org/3/library/string.html#formatspec | https://docs.python.org/3/library/string.html#formatspec | ||
http://wombat.org.ua/AByteOfPython/ | http://wombat.org.ua/AByteOfPython/ | ||
+ | |||
+ | [[http://www.pythontutor.com/ | Визуализация выполнения программы]] | ||
+ | |||
+ | [[http://www.pyzo.org/python_vs_matlab.html | Python vs. Matlab]] |