Bartłomiej 'furas' Burek
furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

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

2020.03.03 - wtorek / kategoria: Python / tagi: python /

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()
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury