Днес ще видим урок, който ще се занимава с компресиране и декомпресиране на данни в Python, много лесна задача, тъй като имаме определени модули, които ще ни позволят да извършим тази работа по компресиране на данни. Библиотеките са: zlib, gzip, bz2, zipfile Y tarfile.
В целия урок ще видим примери за някои от библиотеките, за да научите как да го използвате, това е най -добрият начин да разберете как работи.
ЗабележкаТой ще използва версия 3 на Python.
Нека започнем с примерите. Всички те ще бъдат прости и лесни за разбиране.
1. Модул Zlib
Ще видим няколко примера с тази библиотека, и двата ще бъдат лесни, както казахме по -рано.
Пример 1
Имаме следния код, как можете да видите е кратък:
import zlib as zl line = b "Това е само тест за урока, който да бъде публикуван в Solvetic" line_compress = zl.compress (line) print ("Uncompressed size% d"% len (line)) print ("Compressed size% d "% len (line_compress))Ние компресираме оригиналния ред и показваме какво заема едното и другото, получавайки следния изход:
Сега ще видим как да декомпресираме в следния пример.
Пример 2
В следния код ще компресираме ред, ще го покажем компресиран и ще го разархивираме, за да го покажем.
импортиране на zlib като zl ред = b "Тестване на Python zlib" line_compress = zl.compress (line) print (line_compress) line_decompress = zl.decompress (line_compress) print (line_decompress) print (line_decompress.decode ("utf-8"))Използваме последния ред на кода, за да преминем от байтове към низ (използвайки utf-8 при декодиране), тъй като предпоследният ред ще показва b в началото. Резултатът от програмата е както следва:
Сега отиваме да видим друга библиотека като gzip.
2. Gzip модул
Видените по -горе примери са валидни за тази библиотека, нека видим пример 1 същият като предишния, само променяйки библиотеката.
Пример 1
Кодът, който имаме, е следният, същият като предишния, променящ zlib на gzip:
import gzip line = b "Това е само тест за урока, който ще бъде публикуван в Solvetic" line_compress = gzip.compress (line) print ("Uncompressed size% d"% len (line)) print ("Compressed size% d" % len (line_compress))Ако изпълним, имаме следния изход:
Компресията тежи повече от некомпресираната. Ако променим текста за по -голям и изпълним:
Сега, ако сте подобрили размера, но все пак по -добре компресирайте zlib, тогава се поставя улавяне, първото изпълнение използва zlib, а второто gzip.
Нека да преминем към следния пример, който ще бъде последният.
Пример 2
Сега ще пишем и четем от файл, кодът е следният:
внос gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "Тестване на gzip") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') print (fr.read (). decode ("utf-8")) fr.close ()Можете да видите, че не се занимаваме с възможните изключения, които могат да възникнат, това е пропуснато, за да направи примера по -кратък и по -директен. Ако изпълним кода, имаме следния изход:
Видяхме някои примери за използване на библиотеките zlib и gzip, можете да се консултирате с официалната документация на Python, за да задълбочите и разгледате по -добре тези модули и тези, споменати по -горе. И в случай, че се интересувате, ви оставяме връзката към друг урок по Python: Сериализиране и десериализиране.
Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка