Search on blog:

Python: Jak zmienić nazwę pliku podczas kompresowania do pliku Zip lub rozkompresowywania z pliku Zip.

Kompresowanie z nową nazwą

Czasami chcemy zmienić nazwa kompresowanego pliku lub umieścić w podkatalogu w pliku zip.

Funkcja zipfile.write() może przyjąć nową nazwę, która będzie użyta wewntrz pliku zip.

write("folder_on_disk/name_on_disk", "folder_in_zip_file/name_in_zip_file")

Przykład

import zipfile

z = zipfile.ZipFile('output.zip', 'w')
z.write('images/image.gif', 'new_folder/new_name.gif')
z.close()

# test
z = zipfile.ZipFile('output.zip')
print(z.namelist())

Rozkompresowywanie do nowej nazwy

Czasami chcemy zmienić nazwę rozkompresowywanego pliku lub umieścić go w podkatalog na dysku.

Funkcja zipfile.extract() nie potrafi tego zrobić ale można użyć zipfile.read() wraz ze standardowymi open(), write()

Przykład

import zipfile
import os

z = zipfile.ZipFile('output.zip')

#os.makedirs('other_folder', exist_ok=True)

f = open('other_folder/other_image.gif', 'wb'):
f.write(z.read('new_folder/new_name.gif'))
f.close()
If you like it
Buy a Coffee