Python

Използвайте python, за да архивирате файл и директория

Използвайте python, за да архивирате файл и директория
Компресираният файл съдържа много файлове, директории и поддиректории. Налични са много приложения за създаване на компресиран файл от всеки голям файл или директория и извличане на файлове или папки чрез извличане на компресиран файл. Когато искаме да прехвърлим голям или папка през интернет, по-добре е да компресираме съдържанието, преди да го прехвърлим. Това прави задачата по-бърза. Можете да използвате python скриптове за компресиране и извличане на голям файл или директория. zipfile за изпълнение на задачата се използва модул на python. Как можете да използвате python3 за компресиране на всеки файл или директория е показано в този урок с помощта на различни примери.

Пример-1: Компресиране на един файл

Създайте нов файл с име „пощенски код1.пи и добавете следния код. zipfile модул се импортира за компресиране на файла. темп.цип е присвоено като име на zip файл с режим на запис и следващото име на оригиналния файл, темп.текст и тип компресиране са дадени като параметри в метода на запис.

импортиране на zipfile
zip_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 за компресиране на всеки файл или директория.

Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...
Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...