Zipfile-Tutorial

einführen

zipfile ist ein integriertes Modul von Python, das eine Schnittstelle zum Lesen und Schreiben von Archivdateien im ZIP-Format bereitstellt. ZIP-Dateien sind ein gängiges Archivdateiformat, das mehrere Dateien und Verzeichnisse in einer einzigen Datei komprimiert. Für uns ist es bequem, Dateien im Zip-Format zu lesen und zu schreiben.

Methode

Zip-Datei()

ZipFile-Klasse: Stellt ein ZIP-Dateiobjekt dar, das zum Lesen oder Schreiben von ZIP-Dateien verwendet werden kann. Sie können eine ZIP-Datei öffnen, indem Sie ein ZipFile-Objekt instanziieren und dann dessen Methoden verwenden, um Dateien und Verzeichnisse zu bearbeiten.

import zipfile
file = zipfile.ZipFile('chat-gpt-website-master.zip', mode='r',  compression=zipfile.ZIP_STORED)

Der erste Parameter ist der Name der ZIP-Datei, die gelesen oder geschrieben werden soll. „
mode“ gibt den gewünschten Modus an, „r“ steht für „Lesen“, „w“ für „Schreiben“ und „a“ für das Anhängen. Der Standardwert ist der Lesemodus.
Komprimierung gibt den Komprimierungsmodus an

Komprimierungsmodus Bedeutung
ZIP_STORED Keine Komprimierung, Standardeinstellung
ZIP_DEFLATED Häufig verwendete ZIP-Komprimierung
ZIP_BZIP2 BZIP2 Kompression
ZIP_LZMA LZMA Kompression

ZipFile.read() und ZipFile.close()

Methode ZipFile.read(): Liest den Dateiinhalt in der ZIP-Datei. pwd kann das Dekomprimierungskennwort angeben.
ZipFile.close()-Methode: Schließen Sie das ZIP-Dateiobjekt und geben Sie Ressourcen frei.

import zipfile

file = zipfile.ZipFile('chat-gpt-website-master.zip', mode='r',  compression=zipfile.ZIP_STORED)
print(file.read('chat-gpt-website-master/requirements.txt'))
file.close()

zipfile.is_zipfile(Dateiname)

zipfile.is_zipfile(filename) bestimmt, ob es sich um eine ZIP-Datei handelt. Wenn dies der Fall ist, wird True zurückgegeben, andernfalls wird False zurückgegeben.

import zipfile
file = zipfile.is_zipfile('chat-gpt-website-master.zip')
print(file)

ZipInfo()

ZipInfo-Klasse: Stellt Informationen zu einer Datei oder einem Verzeichnis in einer ZIP-Datei dar, einschließlich Name, Größe, Komprimierungsmethode usw. Das ZipInfo-Objekt kann über die getinfo()-Methode des ZipFile-Objekts abgerufen werden.

import zipfile
file = zipfile.ZipFile('chat-gpt-website-master.zip', mode='r',  compression=zipfile.ZIP_STORED)
for i in file.namelist():
    print(file.getinfo(i)) # 传入文件名

infolist()

infolist() gibt ein ZipInfo-Objekt zurück, das Informationen über alle Mitglieder in der ZIP-Datei enthält


import zipfile
file = zipfile.ZipFile('chat-gpt-website-master.zip', mode='r',  compression=zipfile.ZIP_STORED)

print(file.infolist())




Namensliste()

namelist() gibt eine nach Namen sortierte Liste von Dateien zurück

import zipfile
file = zipfile.ZipFile('chat-gpt-website-master.zip', mode='r',  compression=zipfile.ZIP_STORED)
print(file.namelist())

extract() und extractall()

Methode Bedeutung
Extrakt() Entpacken Sie die angegebene Datei
alles extrahieren() Entpacken Sie alle Dateien

Beispiel für die Methode extract()


import zipfile  
  
# 打开ZIP文件  
with zipfile.ZipFile('example.zip', 'r') as zip_file:  
    # 解压指定文件到指定目录  
    zip_file.extract('file.txt', 'output_directory')

Beispiel für die Methode extractall()

import zipfile  
  
# 打开ZIP文件  
with zipfile.ZipFile('example.zip', 'r') as zip_file:  
    # 解压所有文件到指定目录  
    zip_file.extractall('output_directory')

Beispiel

ZIP-Datei erstellen, entpacken und lesen



import zipfile

# 创建压缩文件并写入文件
for i in range(1, 5):
    file = zipfile.ZipFile(f'{
      
      i}.zip', mode='w', compression=zipfile.ZIP_DEFLATED)
    file.write('test.txt')
    file.close()

# 读取文件内容
for i in range(1, 5):
    read_file = zipfile.ZipFile(f'{
      
      i}.zip')
    print(read_file.read('test.txt'))

# 解压文件指定文件

file = zipfile.ZipFile('1.zip')
# 第一个参数有是要解压的文件 第二个参数是指定解压文件存放的目录 如果没有该目录会自动创建
file.extract('test.txt', 'yass')

# 解压所有文件

file = zipfile.ZipFile('1.zip')
file.extractall('yass')


Zip entpacken, neue Datei schreiben und Komprimierung neu schreiben

import zipfile
import os


# 读取文件
file = zipfile.ZipFile('chat-gpt-website-master.zip')
file.extractall('yyds')
file.close()

def zip_directory(root_dir, zip_file):
    for root, dirs, files in os.walk(root_dir):

        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        for file in files:
            file_path = os.path.join(root, file)
            print(file_path)
            # arcname将文件写入指定目录 目录+文件名
            zip_file.write(file_path, arcname='chat-gpt-website-master/'+os.path.relpath(file_path, root_dir))

    zip_file.write('test.md', arcname='chat-gpt-website-master/test.md')


with zipfile.ZipFile('file.zip', 'w') as zip_file:
    # 压缩指定目录及其嵌套文件
    zip_directory('yyds/chat-gpt-website-master', zip_file)





Guess you like

Origin blog.csdn.net/qq_65898266/article/details/133549394