Как преобразовать каталог в ZIP? - PullRequest
1 голос
/ 19 февраля 2020

Я хотел знать, как преобразовать file (x) напрямую в ZIP (x.zip) и преобразовать его обратно в обычный файл, используя python (3.7)

Ответы [ 3 ]

3 голосов
/ 19 февраля 2020

Я использую шутил

import shutil
#creating archive
shutil.make_archive(output_filename, 'zip', dir_name)
#unpacking archive
shutil.unpack_archive(input_filename, extract_dir, 'zip') 

Вы также можете сделать с zipfile

import os
import zipfile
#creating zip file
zf = zipfile.ZipFile("myzipfile.zip", "w")
for dirname, subdirs, files in os.walk("mydirectory"):
    zf.write(dirname)
    for filename in files:
        zf.write(os.path.join(dirname, filename))
zf.close()
#extracting zip file
with zipfile.ZipFile("myzipfile.zip", 'r') as zip: 
    zip.extractall() 
1 голос
/ 19 февраля 2020

Для архивирования и распаковки без защиты паролем:

Для архивирования файла вы можете использовать pyminizip модуль

import pyminizip
compression_level = 5 # 1-9
pyminizip.compress("/home/paulsteven/src.txt",'src', "dst.zip", None, compression_level)

Для распаковки файла используйте Zipfile модуль

from zipfile import ZipFile
with ZipFile('/home/paulsteven/dst.zip') as zf:
    zf.extractall()

Для архивирование и распаковка с паролем:

Для ZIP:

import pyminizip
compression_level = 5 # 1-9
pyminizip.compress("/home/paulsteven/src.txt",'src', "dst.zip", "password", compression_level)

Для UNZIP:

from zipfile import ZipFile

with ZipFile('/home/paulsteven/dst.zip') as zf:
    zf.extractall(pwd=b'password')
0 голосов
/ 19 февраля 2020

Чтобы взломать ZIP файл был защищен:

import threading
from zipfile import ZipFile

def ext(f, pw):
    try:
        f.extractall(pwd=pw)
        print('Cracked the .zip file')
        print(':::::  %s' % pw)
    except:
        pass

f = 'file.zip'

pw = open('password.txt', 'r').readline()
for p in pw:
    crack=threading.Thread(target=ext, args=[f, p])
    crack.start()
...