Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách làm việc với file tarball/tar trong Python
File TAR (Tape Archive Files) là định dạng dùng để gom nhiều file lại thành một file duy nhất, rất tiện lợi khi cần lưu trữ hoặc gửi một loạt file qua mạng.Python có module tarfile để làm việc với các file TAR, hỗ trợ các nén bằng gzip, bz2, và lzma.Bài viết này sẽ hướng dẫn bạn cách sử dụng tarfile để đọc và ghi các file TAR trong Python.

Đọc file TAR trong Python
Hàm tarfile.open được dùng để đọc file TAR và trả về một đối tượng tarfile.TarFile.
Hai tham số quan trọng của hàm này là filename (đường dẫn đến file ) và mode (chế độ mở file ).
Chế độ mở (mode) có thể kèm theo phương pháp nén theo cú pháp mode[:compression], với các tùy chọn nén:
Bài viết này được đăng tại [free tuts .net]
gzcho gzipbz2cho bz2xzcho lzma
Ví dụ:
import tarfile
with tarfile.open("sample.tar", "r") as tf:
print("Opened tarfile")
Giải nén file TAR
Sau khi mở file , bạn có thể giải nén bằng phương thức tarfile.TarFile.extractall. Một số tham số quan trọng của phương thức này:
path: đường dẫn thư mục đích để lưu file , mặc định là thư mục hiện tại (.).members: chỉ định các file cần giải nén, phải là một tập con của phương thứctarfile.TarFile.getmembers(). Mặc định, tất cả các file sẽ được giải nén.
Ví dụ:
import tarfile
with tarfile.open("sample.tar", "r") as tf:
print("Opened tarfile")
tf.extractall(path="./extraction_dir")
print("All files extracted")
Giải nén một file cụ thể
Để giải nén file cụ thể, hãy truyền tham chiếu của đối tượng file hoặc đường dẫn file dưới dạng chuỗi vào phương thức tarfile.TarFile.extract.
Để liệt kê các file trong file TAR, bạn có thể dùng phương thức tarfile.TarFile.getmembers, trả về danh sách các đối tượng tarfile.TarInfo.
Ví dụ:
import tarfile
with tarfile.open("./sample.tar", "r") as tf:
print("Opened tarfile")
print(tf.getmembers()) # Danh sách các file bên trong
print("Members listed")
Kết quả:
Opened tarfile [<TarInfo 'sample' at 0x7fe14b53a048>, <TarInfo 'sample/sample_txt1.txt' at 0x7fe14b53a110>, ...]
Giải nén một file cụ thể:
import tarfile
file_name = "sample/sample_txt1.txt"
with tarfile.open("sample.tar", "r") as tf:
print("Opened tarfile")
tf.extract(member=file_name, path="./extraction_dir")
print(f"{file_name} extracted")
Ghi file vào TAR
Để thêm file vào file TAR, mở file ở chế độ append và sử dụng phương thức tarfile.TarFile.add, truyền vào đường dẫn của file cần thêm.
Ví dụ:
import tarfile
file_name = "sample_txt5.txt"
with tarfile.open(f"./sample.tar", "a") as tf:
print("Opened tarfile")
print(f"Members before addition of {file_name}")
print(tf.getmembers())
tf.add(f"{file_name}", arcname="sample")
print(f"Members after addition of {file_name}")
print(tf.getmembers())
Module tarfile là công cụ hiệu quả trong Python để quản lý các file TAR, giúp bạn dễ dàng lưu trữ và thao tác trên nhiều file một cách thuận tiện.
Kết bài
Qua bài viết, bạn đã tìm hiểu cách làm việc với file TAR trong Python bằng module tarfile, bao gồm đọc, giải nén, và ghi thêm file vào file TAR. Module tarfile giúp quản lý tập tin dễ dàng, hỗ trợ nhiều định dạng nén, rất hữu ích khi cần lưu trữ hoặc truyền tải nhiều tập tin. Nắm vững các thao tác này sẽ giúp bạn xử lý dữ liệu một cách linh hoạt và hiệu quả hơn trong các dự án Python của mình.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng