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
Επεξήγηση κώδικα
- Εισαγωγή κλάσης make_archive από τη λειτουργική μονάδα shutil
- Χρησιμοποιήστε τη συνάρτηση διαχωρισμού για να διαχωρίσετε τον κατάλογο και το όνομα του αρχείου από τη διαδρομή προς τη θέση του αρχείου κειμένου (guru99)
- Στη συνέχεια, καλούμε το module "shutil.make_archive("guru99 archive, "zip", root_dir)" για να δημιουργήσουμε αρχείο αρχειοθέτησης, το οποίο θα είναι σε μορφή zip
- Στη συνέχεια περνάμε στον ριζικό κατάλογο των πραγμάτων που θέλουμε να συμπιεστούν. Έτσι, όλα στον κατάλογο θα είναι συμπιεσμένα
- Όταν εκτελείτε τον κώδικα, μπορείτε να δείτε ότι το αρχείο zip αρχείου δημιουργείται στη δεξιά πλευρά του πίνακα.
Βήμα 2) Μόλις γίνει το αρχείο αρχειοθέτησής σας, μπορείτε να κάνετε δεξί κλικ στο αρχείο και να επιλέξετε το λειτουργικό σύστημα και θα εμφανίσει τα αρχεία αρχειοθέτησής σας σε αυτό όπως φαίνεται παρακάτω
Τώρα το αρχείο archive.zip θα εμφανιστεί στο λειτουργικό σας σύστημα (Windows Explorer)
Βήμα 3) Όταν κάνετε διπλό κλικ στο αρχείο, θα δείτε τη λίστα με όλα τα αρχεία εκεί μέσα.
Βήμα 4) In Python μπορούμε να έχουμε περισσότερο έλεγχο στην αρχειοθέτηση αφού μπορούμε να ορίσουμε ποιο συγκεκριμένο αρχείο θα συμπεριλάβουμε στην αρχειοθέτηση. Στην περίπτωσή μας, θα συμπεριλάβουμε δύο αρχεία υπό αρχειοθέτηση “guru99.txt” και “guru99.txt.bak”.
Επεξήγηση κώδικα
- Εισαγωγή κλάσης 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), θα εμφανίσει τα αρχεία αρχειοθέτησης στο φάκελο όπως φαίνεται παρακάτω.
Όταν κάνετε διπλό κλικ στο αρχείο "testguru99.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)"