2016-09-29 12 views
10

Korzystam z następującego kodu, w którym przekazuję nazwy plików .pdf wraz z ich ścieżkami, aby utworzyć plik zip.Utwórz archiwum zip z wieloma plikami

for f in lstFileNames: 
     with zipfile.ZipFile('reportDir' + str(uuid.uuid4()) + '.zip', 'w') as myzip: 
      myzip.write(f) 

To jednak archiwizuje tylko jeden plik. Potrzebuję zarchiwizować wszystkie pliki na mojej liście w jednym folderze zip.

Zanim ludzie zaczną wskazywać, tak, skonsultowałem się z odpowiedziami z linku this i this, ale kod podany tam nie działa dla mnie. Kod działa, ale nie mogę znaleźć wygenerowanego pliku zip w dowolnym miejscu na moim komputerze.

Prosta odpowiedź byłaby doceniona. Dzięki.

Odpowiedz

14

Zamówienie jest nieprawidłowe. Tworzysz nowy obiekt zipfile dla każdej pozycji w lstFileNames

Powinien być taki.

with zipfile.ZipFile('reportDir' + str(uuid.uuid4()) + '.zip', 'w') as myzip: 
    for f in lstFileNames: 
     myzip.write(f) 
+0

dobrze, cholera. To było tak proste. Wielkie dzięki! –

+0

@TahreemIqbal Serdecznie zapraszamy)) –

Powiązane problemy