Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแยกไฟล์ .txt จาก Zip File ใน Python (zipfile)

ใช้โมดูล zipfile วนลูปไฟล์ใน Zip ตรวจสอบนามสกุล .txt แล้ว Extract

ตัวอย่าง

import zipfile

my_zip = zipfile.ZipFile('my_zip_file.zip')  # เปิดไฟล์ Zip
storage_path = '.'  # โฟลเดอร์ปลายทาง

for file in my_zip.namelist():
    if my_zip.getinfo(file).filename.endswith('.txt'):
        my_zip.extract(file, storage_path)  # Extract ถ้าเป็น .txt

my_zip.close()

เวอร์ชันที่ดีกว่า: Context Manager (Auto-close)

import zipfile

with zipfile.ZipFile('my_zip_file.zip') as my_zip:
    for file in my_zip.namelist():
        if file.endswith('.txt'):
            my_zip.extract(file, '.')

Extract ทั้งหมด (All Files)

>> with zipfile.ZipFile('my_zip_file.zip') as zf:
...     zf.extractall('.')  # Extract ทุกไฟล์ไป Current Directory

Extract เฉพาะไฟล์บางตัว (Pattern)

>> import fnmatch
>>> with zipfile.ZipFile('my_zip_file.zip') as zf:
...     for file in zf.namelist():
...         if fnmatch.fnmatch(file, '*.txt'):
...             zf.extract(file, '.')

ZipFile Methods สำคัญ

MethodDescription
namelist()รายชื่อไฟล์ทั้งหมดใน Zip
getinfo(name)ข้อมูลไฟล์ (ZipInfo object)
extract(member, path)Extract ไฟล์เดียว
extractall(path, members)Extract หลายไฟล์/ทั้งหมด
read(name)อ่านเนื้อหาไฟล์เป็น bytes (ไม่ extract)