Python Αρχείο ZIP με Παράδειγμα

Python σας επιτρέπει να δημιουργείτε γρήγορα αρχεία zip/tar.

Η ακόλουθη εντολή θα κάνει zip ολόκληρο τον κατάλογο

shutil.make_archive(output_filename, 'zip', dir_name)

Η παρακάτω εντολή σάς δίνει τον έλεγχο των αρχείων που θέλετε να αρχειοθετήσετε

ZipFile.write(filename)

Ακολουθούν τα βήματα για τη δημιουργία αρχείου Zip Python

Βήμα 1) Για να δημιουργήσετε ένα αρχείο αρχειοθέτησης από Python, βεβαιωθείτε ότι έχετε τη δήλωση εισαγωγής σωστή και με τάξη. Εδώ είναι η δήλωση εισαγωγής για το αρχείο from shutil import make_archive

Python Αρχείο ZIP

Επεξήγηση κώδικα

  • Εισαγωγή κλάσης make_archive από τη λειτουργική μονάδα shutil
  • Χρησιμοποιήστε τη συνάρτηση διαχωρισμού για να διαχωρίσετε τον κατάλογο και το όνομα του αρχείου από τη διαδρομή προς τη θέση του αρχείου κειμένου (guru99)
  • Στη συνέχεια, καλούμε το module "shutil.make_archive("guru99 archive, "zip", root_dir)" για να δημιουργήσουμε αρχείο αρχειοθέτησης, το οποίο θα είναι σε μορφή zip
  • Στη συνέχεια περνάμε στον ριζικό κατάλογο των πραγμάτων που θέλουμε να συμπιεστούν. Έτσι, όλα στον κατάλογο θα είναι συμπιεσμένα
  • Όταν εκτελείτε τον κώδικα, μπορείτε να δείτε ότι το αρχείο zip αρχείου δημιουργείται στη δεξιά πλευρά του πίνακα.

Βήμα 2) Μόλις γίνει το αρχείο αρχειοθέτησής σας, μπορείτε να κάνετε δεξί κλικ στο αρχείο και να επιλέξετε το λειτουργικό σύστημα και θα εμφανίσει τα αρχεία αρχειοθέτησής σας σε αυτό όπως φαίνεται παρακάτω

Python Αρχείο ZIP

Τώρα το αρχείο archive.zip θα εμφανιστεί στο λειτουργικό σας σύστημα (Windows Explorer)

Python Αρχείο ZIP

Βήμα 3) Όταν κάνετε διπλό κλικ στο αρχείο, θα δείτε τη λίστα με όλα τα αρχεία εκεί μέσα.

Python Αρχείο ZIP

Βήμα 4) In Python μπορούμε να έχουμε περισσότερο έλεγχο στην αρχειοθέτηση αφού μπορούμε να ορίσουμε ποιο συγκεκριμένο αρχείο θα συμπεριλάβουμε στην αρχειοθέτηση. Στην περίπτωσή μας, θα συμπεριλάβουμε δύο αρχεία υπό αρχειοθέτηση “guru99.txt” και “guru99.txt.bak”.

Python Αρχείο ZIP

Επεξήγηση κώδικα

  • Εισαγωγή κλάσης Zipfile από αρχείο zip Python μονάδα μέτρησης. Αυτή η ενότητα παρέχει πλήρη έλεγχο στη δημιουργία αρχείων zip
  • Δημιουργούμε ένα νέο αρχείο Zip με όνομα (“testguru99.zip, “w”)
  • Η δημιουργία μιας νέας κλάσης Zipfile απαιτεί άδεια, επειδή είναι αρχείο, επομένως πρέπει να γράψετε πληροφορίες στο αρχείο ως newzip
  • Χρησιμοποιήσαμε τη μεταβλητή "newzip" για να αναφερθούμε στο αρχείο zip που δημιουργήσαμε
  • Χρησιμοποιώντας τη συνάρτηση εγγραφής στη μεταβλητή "newzip", προσθέτουμε τα αρχεία "guru99.txt" και "guru99.txt.bak" στο αρχείο

Όταν εκτελέσετε τον κώδικα, μπορείτε να δείτε ότι το αρχείο δημιουργείται στη δεξιά πλευρά του πίνακα με το όνομα "guru99.zip"

Σημείωση: Εδώ δεν δίνουμε καμία εντολή "κλείσιμο" του αρχείου όπως "newzip.close" επειδή χρησιμοποιούμε "Με" κλείδωμα εύρους, οπότε όταν το πρόγραμμα πέσει εκτός αυτού του πεδίου εφαρμογής το αρχείο θα καθαριστεί και θα κλείσει αυτόματα.

Βήμα 5) Όταν -> κάντε δεξί κλικ στο αρχείο (testguru99.zip) και -> επιλέξτε το λειτουργικό σας σύστημα (Windows Explorer), θα εμφανίσει τα αρχεία αρχειοθέτησης στο φάκελο όπως φαίνεται παρακάτω.

Python Αρχείο ZIP

Όταν κάνετε διπλό κλικ στο αρχείο "testguru99.zip", θα ανοίξει ένα άλλο παράθυρο και θα εμφανιστούν τα αρχεία που περιλαμβάνονται σε αυτό.

Python Αρχείο ZIP

Εδώ είναι ο πλήρης κώδικας

Python 2 Παράδειγμα

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3 Παράδειγμα

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Περίληψη

  • Για τη συμπίεση ολόκληρου του καταλόγου χρησιμοποιήστε την εντολή "shutil.make_archive("name","zip", root_dir)
  • Για να επιλέξετε τα αρχεία προς συμπίεση χρησιμοποιήστε την εντολή "ZipFile.write(filename)"