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