Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Το Zipping είναι ένας κομψός τρόπος συμπίεσης πολλών αρχείων και συνδυασμού τους σε ένα μόνο. Αυτό εξοικονομεί όχι μόνο χώρο αποθήκευσης αλλά και εύρος ζώνης κατά τη μεταφορά ενός αρχείου μέσω δικτύου. Ένα από τα καλύτερα χαρακτηριστικά του zip είναι ότι λειτουργεί σε όλες τις μεγάλες πλατφόρμες: Windows, Linux και Mac.

Το Zip χρησιμοποιεί συμπίεση χωρίς απώλειες, έτσι ώστε να διατηρεί όλα τα δεδομένα κατά τη συμπίεση και την αποσυμπίεση του. Μπορείτε επίσης να κρυπτογραφήσετε και να αποκρυπτογραφήσετε τα αρχεία zip σας.

Με τόσες πολλές δυνατότητες για εξερεύνηση, ανακαλύψτε πώς μπορείτε να διαβάσετε, να αποσυμπιέσετε και να αποσυμπιέσετε αρχεία χρησιμοποιώντας τη μονάδα zipfile της Python.

Τι είναι η μονάδα zipfile;

Μπορείτε να χρησιμοποιήσετε την τυπική μονάδα zipfile για να χειριστείτε αρχεία zip χρησιμοποιώντας Python. Με αυτήν την ενότητα, μπορείτε να ανοίξετε και να διαβάσετε αρχεία zip, να διαβάσετε τα μεταδεδομένα τους, να δημιουργήσετε ένα αρχείο zip, να το συμπιέσετε και να αποσυμπιέσετε αρχεία. Υπάρχουν τρεις διαθέσιμες μέθοδοι συμπίεσης: Deflate, Bzip2 και LZMA.

instagram viewer

Ένα από τα πράγματα που λείπει από τη μονάδα είναι η δυνατότητα χειρισμού αρχείων πολλών δίσκων, αλλά χειρίζεται την επέκταση ZIP64. Μπορεί επίσης να αποκρυπτογραφήσει τα αρχεία zip αλλά όχι να τα κρυπτογραφήσει. Χρησιμοποιώντας τη μονάδα zipfile, μπορείτε να λάβετε μεταδεδομένα αρχείου zip, όπως την ημερομηνία και την ώρα τροποποίησης. Μπορείτε επίσης να ανακτήσετε λεπτομέρειες όπως το λειτουργικό σύστημα που χρησιμοποιείται για τη δημιουργία του αρχείου, την έκδοση του zip και το μέγεθος του αρχείου τόσο σε συμπιεσμένη όσο και σε μη συμπιεσμένη μορφή.

Πώς να κάνετε Zip αρχεία χρησιμοποιώντας Python

Μπορείτε να συμπιέσετε πολλά αρχεία σε ένα αρχείο χρησιμοποιώντας τη μονάδα zipfile της Python. Εισαγάγετε το ZipFile ενότητα από το zipfile πακέτο για να εκτελέσετε τις απαιτούμενες λειτουργίες zip. Επίσης εισαγωγή ο os μονάδα για επιλογή και αποθήκευση αρχείων.

Ορίστε μια συνάρτηση get_all_file_paths(). Θα πρέπει να δέχεται μια παράμετρο καταλόγου που περιέχει τη διαδρομή προς το φάκελο που περιέχει τα αρχεία προς συμπίεση.

Εκκινήστε μια κενή λίστα που θα αποθηκεύει τη λίστα των διαδρομών αρχείων. Χρησιμοποιήστε έναν βρόχο for για να λάβετε τα πλήρη περιεχόμενα του καταλόγου προορισμού χρησιμοποιώντας το os.walk() λειτουργία. Αυτή η συνάρτηση ανακτά τα ονόματα αρχείων σε ένα δέντρο καταλόγου μετακινώντας κατά μήκος του με μια προσέγγιση από πάνω προς τα κάτω ή από κάτω προς τα πάνω. Για κάθε κατάλογο, η συνάρτηση επιστρέφει ένα τρίπτυχο που περιέχει root, dir και αρχεία.

Η ρίζα είναι μια συμβολοσειρά που περιέχει την πλήρη διαδρομή προς τον κατάλογο. Η λίστα dir περιλαμβάνει όλους τους υποκαταλόγους που περιέχονται στον κατάλογο. Η λίστα αρχείων περιέχει όλα τα αρχεία που υπάρχουν στον κατάλογο.

Μέσα στον βρόχο, δηλώστε ένα άλλο βρόχο για επανάληψη στη λίστα αρχείων. Χρησιμοποιήστε το os.path.join() λειτουργία για να συνδυάσετε το όνομα του καταλόγου με κάθε όνομα αρχείου για να δημιουργήσετε μια πλήρη διαδρομή. Στη συνέχεια, προσθέστε αυτό το πλήρες όνομα αρχείου στη λίστα που δημιουργήσατε νωρίτερα. Μόλις ολοκληρωθεί αυτή η λειτουργία, επιστρέψτε τη λίστα με τις διαδρομές αρχείων.

# εισαγάγετε τις απαιτούμενες μονάδες
από zipfile εισαγωγή ZipFile
εισαγωγή os

# δημιουργήστε μια συνάρτηση για να λάβετε όλες τις διαδρομές αρχείων
defget_all_file_paths(Ευρετήριο):
# αρχικοποίηση κενή λίστας για αποθήκευση διαδρομών αρχείων
file_paths = []

# περιηγηθείτε στα αρχεία
Γιαρίζα, καταλόγους, αρχείασεos.Περπατήστε(Ευρετήριο):
για όνομα αρχείου σε αρχεία:
# συνδέστε τη ρίζα και το όνομα αρχείου για να δημιουργήσετε μια πλήρη διαδρομή αρχείου
filepath = os.path.join (root, όνομα αρχείου)
file_paths.προσαρτώ(διαδρομή αρχείου)

# επιστρέφει όλες τις διαδρομές αρχείων
ΕΠΙΣΤΡΟΦΗ file_paths

Αποθηκεύστε τη διαδρομή προς το φάκελο που περιέχει τα αρχεία που θέλετε να συμπιεστείτε σε μια μεταβλητή που ονομάζεται κατάλογος. Καλέστε τη συνάρτηση, get_all_file_paths() που δημιουργήσατε νωρίτερα και αποθηκεύστε την τιμή στην οποία επιστρέφει file_paths.

Εμφανίστε ένα μήνυμα στον χρήστη για να τον ενημερώσετε ότι αυτά είναι τα αρχεία που το πρόγραμμα θα αποσυμπιέσει. Επαναλάβετε τα αρχεία και εμφανίστε τα ονόματά τους.

Περάστε το όνομα που θέλετε να έχει το αρχείο zip μαζί με την προδιαγραφή ότι το πρόγραμμα επιστρέφει ένα εγγράψιμο αρχείο χρησιμοποιώντας τη δήλωση with για να χειριστεί τις εξαιρέσεις. Επαναλάβετε σε κάθε αρχείο και χρησιμοποιήστε τη συνάρτηση write() πάνω από το εγγράψιμο αρχείο σε ένα αρχείο zip.

Όταν ολοκληρωθεί η λειτουργία, στείλτε ένα μήνυμα που εξηγεί ότι το πρόγραμμα συμπίεσε όλα τα αρχεία με επιτυχία.

# διαδρομή προς το φάκελο που θέλετε να συμπιεστείτε
κατάλογος = './pythonzip'

# συνάρτηση κλήσης για λήψη όλων των διαδρομών αρχείων στον κατάλογο
file_paths = get_all_file_paths (κατάλογος)

# εκτύπωση της λίστας όλων των αρχείων που θέλετε να συμπιεστείτε
Τυπώνω('Λίστα αρχείων που θα συμπιεστούν:')

για το όνομα_αρχείου στο file_paths:
Τυπώνω(όνομα αρχείου)

# εγγραφή αρχείων σε αρχείο zip
με ZipFile('my_file.zip', 'w') όπως και φερμουάρ:
# γράψτε κάθε αρχείο ένα προς ένα
για αρχείο στο file_paths:
φερμουάρ.γράφω(αρχείο)

Τυπώνω('Όλα τα αρχεία είναι συμπιεσμένα!')

Πώς να αποσυμπιέσετε αρχεία χρησιμοποιώντας Python

Η υλοποίηση της αποσυμπίεσης αρχείων χρησιμοποιώντας τη μονάδα zipfile είναι πολύ πιο εύκολη. Εισαγάγετε το zipfile πακέτο από το ZipFile μονάδα και αποθηκεύστε το όνομα του αρχείου zip που θέλετε να εξαγάγετε σε μια μεταβλητή. Χρησιμοποιήστε τη δήλωση with για να χειριστείτε τις εξαιρέσεις και ανοίξτε το αρχείο που θέλετε να εξαγάγετε σε λειτουργία ανάγνωσης. Χρησιμοποιήστε το printdir() λειτουργία για εμφάνιση του πίνακα περιεχομένων των αρχείων που υπάρχουν στο zip.

Εμφανίστε ένα μήνυμα προόδου ότι εξάγετε τα αρχεία και χρησιμοποιήστε το αποσυμπίεση όλων() λειτουργία εξαγωγής των περιεχομένων του αρχείου zip στον τρέχοντα κατάλογο εργασίας. Εναλλακτικά, μπορείτε να συμπεριλάβετε μια παράμετρο διαδρομής για να αλλάξετε τη διαδρομή όπου το πρόγραμμα εξάγει τα αρχεία.

Εμφανίστε ένα μήνυμα χρησιμοποιώντας το Τυπώνω δήλωση για την ολοκλήρωση της επιχείρησης.

# εισαγωγή των απαιτούμενων μονάδων
από zipfile εισαγωγή ZipFile

# περάστε το όνομα του αρχείου zip που θέλετε να εξαγάγετε
όνομα_αρχείου = "extract.zip"

# άνοιγμα του αρχείου zip σε λειτουργία ανάγνωσης
με ZipFile (όνομα_αρχείου, 'ρ') όπως και φερμουάρ:
# εμφανίζει τα περιεχόμενα του αρχείου zip
φερμουάρ.printdir()

# εξαγωγή όλων των αρχείων
Τυπώνω("Απόσπασμα σε εξέλιξη...")
φερμουάρ.αποσυμπίεση όλων()
Τυπώνω('Όλα τα αρχεία εξάγονται!')

Περισσότερα για τα αρχεία Zip

Τα αρχεία zip έχουν αποκτήσει μεγάλη δημοτικότητα και χρησιμοποιούνται εδώ και δεκαετίες. Δημοφιλείς ιστότοποι όπως το GitHub και το Google Drive σάς επιτρέπουν να κάνετε λήψη μιας συλλογής αρχείων ως αρχείο zip. Το πρόγραμμα zip συμπιέζει ένα σύνολο αρχείων σε ένα μόνο πακέτο. Αυτό έρχεται σε αντίθεση με ένα εργαλείο όπως το tar που συσκευάζει αρχεία μαζί αλλά δεν τα συμπιέζει.

Εάν θέλετε να κρυπτογραφήσετε τα αρχεία σας χρησιμοποιώντας έναν πιο αποτελεσματικό αλγόριθμο, τα αρχεία RAR είναι ο καλύτερος τρόπος. Το RAR χρησιμοποιεί τον αλγόριθμο AES-128 που είναι καλύτερος από τον αλγόριθμο deflate που χρησιμοποιείται από αρχεία zip. Τελικά, επιλέξτε αυτό που καλύπτει καλύτερα τις ανάγκες σας.