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

การแยกไฟล์จาก Tar File ใน Python (tarfile)

ใช้โมดูล tarfile อ่าน/เขียน Tar Files (รองรับ .tar, .tar.gz, .tar.bz2, .tar.xz)

Extract ทั้งหมด (extractall)

import tarfile

with tarfile.open('my_tar.tar.gz') as my_tar:
    my_tar.extractall('./my_folder')  # ระบุโฟลเดอร์ปลายทาง
    # my_tar.close() # Auto-close ด้วย with

Extract ไฟล์เดี่ยว (extract)

import tarfile

with tarfile.open('my_tar.tar.gz') as my_tar:
    my_tar.extract('hello.txt', './my_folder')  # (member, path)

Extract แบบเลือกเฉพาะ (Filter)

>> import tarfile
>>> with tarfile.open('my_tar.tar.gz') as tf:
...     # Extract เฉพาะ .txt
...     members = [m for m in tf.getmembers() if m.name.endswith('.txt')]
...     tf.extractall('./my_folder', members=members)

อ่านเนื้อหาโดยไม่ Extract (read)

>> with tarfile.open('my_tar.tar.gz') as tf:
...     member = tf.getmember('hello.txt')
...     content = tf.extractfile(member).read()
...     print(content.decode())

รูปแบบ Compression ที่รองรับ

SuffixCompressionMode String
.tarNone'r:'
.tar.gz / .tgzgzip'r:gz'
.tar.bz2 / .tbz2bzip2'r:bz2'
.tar.xz / .txzlzma'r:xz'

tarfile.open() ตรวจจับ Compression อัตโนมัติจากไฟล์ (ไม่ต้องระบุ mode)