Пример-1: Компресиране на един файл
Създайте нов файл с име „пощенски код1.пи и добавете следния код. zipfile модул се импортира за компресиране на файла. темп.цип е присвоено като име на zip файл с режим на запис и следващото име на оригиналния файл, темп.текст и тип компресиране са дадени като параметри в метода на запис.
импортиране на zipfilezip_file = zipfile.ZipFile ('temp.zip ',' w ')
zip_file.write ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
zip_file.близо()
Стартирайте скрипта
$ python3 zipcode1.pyРазмерът на темп.текст е 27 байта и след компресия, размера на темп.цип е 2 байта.
Пример-2: Компресиране на определена директория
Създайте нов файл с име „пощенски код2.пи и добавете следния код. Директорията може да съдържа много файлове, папки и подпапки. За да прочетете съдържанието на директорията, операционна система модул на python се импортира с zipfile модул за компресиране на директорията. В този скрипт, mydir директория се използва за компресиране.
# импортиране на необходимите модуливнос os
импортиране на zipfile
# Декларирайте функцията за връщане на всички файлови пътища на конкретната директория
def retrieve_file_paths (dirName):
# променлива на пътеките за настройка на файла
filePaths = []
# Прочетете всички директории, поддиректории и списъци с файлове
за root, директории, файлове в os.разходка (dirName):
за име на файл във файлове:
# Създайте пълната файлова пътека с помощта на модула os.
filePath = os.път.присъединяване (корен, име на файл)
filePaths.добавяне (filePath)
# връща всички пътища
връщане на filePaths
# Декларирайте основната функция
def main ():
# Задайте името на директорията на zip
dir_name = 'mydir'
# Извикайте функцията за извличане на всички файлове и папки от зададената директория
filePaths = retrieve_file_paths (dir_name)
# отпечатване на списъка с всички файлове, които трябва да се компресират
print ('Следният списък с файлове ще бъде компресиран:')
за fileName в filePaths:
печат (име на файл)
# запис на файлове в zipfile
zip_file = zipfile.ZipFile (dir_name + '.zip ',' w ')
с zip_file:
# писане на всеки файл един по един
за файл в filePaths:
zip_file.запис (файл)
отпечатване (име на директория + '.zip файл е създаден успешно!')
# Извикайте основната функция
ако __name__ == "__main__":
главен ()
Стартирайте скрипта
$ python3 zipcode2.pyРазмерът на mydir е 21 байта и след компресия, размера на mydir.цип е 2 байта.
Пример-3: Компресиране на директория, дадена от аргумент на командния ред
Създайте нов файл с име „пощенски код3.пи и добавете следния код. За да прочетете стойността на командния ред, друг модул на python sys се внася с операционна система и zipfile модули.
# импортиране на необходимите модуливнос os
импортиране на sys
импортиране на zipfile
# Декларирайте функцията за връщане на всички файлови пътища на определена директория
def retrieve_file_paths (dirName):
# променлива на пътеките за настройка на файла
filePaths = []
# Прочетете всички директории, поддиректории и списъци с файлове
за root, директории, файлове в os.разходка (dirName):
за име на файл във файлове:
# Създайте пълния файлов път с помощта на модула os.
filePath = os.път.присъединяване (корен, име на файл)
filePaths.добавяне (filePath)
# връща всички пътища
връщане на filePaths
# Декларирайте основната функция
def main ():
# Проверете дали два аргумента са дадени по време на стартиране на скрипта
ако len (sys.argv) != 2:
print ("Трябва да въведете името на директорията, за да zip")
sys.изход (1)
# Задайте името на директорията от командния аргумент
dir_name = sys.argv [1]
# Задайте името на zip файла
zipFileName = dir_name + ".цип "
# Извикайте функцията за извличане на всички файлове и папки от зададената директория
filePaths = retrieve_file_paths (dir_name)
# отпечатайте списъка с файлове, които трябва да се компресират
print ('Следният списък с файлове ще бъде компресиран:')
за fileName в filePaths:
печат (име на файл)
# запис на файлове и папки в zipfile
zip_file = zipfile.ZipFile (zipFileName, 'w')
с zip_file:
# напишете всеки файл отделно
за файл в filePaths:
zip_file.запис (файл)
print (zipFileName + 'файлът е създаден успешно!')
# Извикайте основната функция
ако __name__ == "__main__":
главен ()
Стартирайте скрипта
$ python3 zipcode3.pyтест се дава като име на директория в аргумента на командния ред. Размерът на тест е 21 байта и след компресия, размера на тест.цип е 2 байта.
Надявам се, този урок ще ви помогне да използвате python за компресиране на всеки файл или директория.