Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

Python maakt het eenvoudig om ZIP- en TAR-archieven te maken, of je nu een volledige directory wilt comprimeren of specifieke bestanden wilt selecteren.

Gebruik shutil.make_archive voor een snelle, directory-brede zip:

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

Voor granulair controle laat de zipfile.ZipFile class je individuele bestanden specificeren:

ZipFile.write(filename)

Stap 1: De omgeving voorbereiden

  • Importeer de benodigde modules:
    from shutil import make_archive
    from zipfile import ZipFile
    from os import path
    import os
  • Zorg dat het bronbestand bestaat en haal het absolute pad op.
    if path.exists("guru99.txt"):
        src = path.realpath("guru99.txt")
  • Optioneel een bestaand bestand hernoemen naar de doelnaam.

Stap 2: De volledige directory zippen

Als je alles in een map wilt archiveren, gebruik make_archive:

root_dir, _ = path.split(src)
make_archive("guru99_archive", "zip", root_dir)

Dit creëert guru99_archive.zip in de huidige werkdirectory.

Stap 3: Specifieke bestanden toevoegen aan een nieuwe ZIP

Als je fijnere controle nodig hebt, is de ZipFile class ideaal:

with ZipFile("testguru99.zip", "w") as newzip:
    newzip.write("guru99.txt")
    newzip.write("guru99.txt.bak")

De with statement sluit het archief automatisch wanneer het blok eindigt.

Stap 4: Het resultaat verifiëren

Open het gegenereerde ZIP-bestand in je besturingssysteem's bestandsverkenner om de inhoud te zien. Op Windows toont een dubbele klik een lijst van de opgenomen bestanden.

Hieronder illustratieve screenshots van een typische workflow:

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

ZIP-archieven maken in Python: van volledige directory tot aangepaste bestandsselectie

Complete code (Python 3):

import os
from shutil import make_archive
from zipfile import ZipFile
from os import path
def main():
    if path.exists("guru99.txt"):
        # Absoluut pad naar bronbestand
        src = path.realpath("guru99.txt")
        # Optioneel: bestaand bestand hernoemen
        os.rename("career.guru99.txt", "guru99.txt")
        # Hele directory archiveren
        root_dir, _ = path.split(src)
        make_archive("guru99_archive", "zip", root_dir)
        # Tweede ZIP met geselecteerde bestanden
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")
if __name__ == "__main__":
    main()

Samenvatting

  • Om een volledige directory te zippen, roep shutil.make_archive('naam', 'zip', root_dir) aan.
  • Om specifieke bestanden toe te voegen, gebruik ZipFile.write(bestandsnaam) binnen een with blok.

Python

  1. Python-bestands-I/O: bestandsbewerkingen, lezen, schrijven en beheer beheersen
  2. Python's strip()-methode beheersen: Uitgebreide handleiding & praktische voorbeelden
  3. Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
  4. Python round()-functie uitgelegd met praktische voorbeelden
  5. Python's map()-functie beheersen: syntaxis, voorbeelden en best practices
  6. Python timeit() – Uitvoeringstijd meten met praktische voorbeelden
  7. Python Counter in collections – Efficiënt tellen, updaten en rekenkundige operaties
  8. Python list.count(): Expert Gids met Praktische Voorbeelden
  9. Python List index() – Elementposities Vinden met Praktische Voorbeelden
  10. Python Extensieprogrammering met C: Snelle, Native Modules Bouwen
  11. Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden