Hướng dẫn tarfile python - trăn tarfile
Mã nguồn: lib/tarfile.py Lib/tarfile.py Show Mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 cho phép đọc và viết tài liệu lưu trữ tar, bao gồm cả những người sử dụng nén GZIP, BZ2 và LZMA. Sử dụng mô-đun $ python -m tarfile -c monty.tar life-of-brian_1979/
2 để đọc hoặc ghi các tệp $ python -m tarfile -c monty.tar life-of-brian_1979/
3 hoặc các hàm cấp cao hơn trong SHOWIL.shutil.Một số sự thật và số liệu:
Đã thay đổi trong phiên bản 3.3: Đã thêm hỗ trợ cho nén $ python -m tarfile -c monty.tar life-of-brian_1979/
6 compression. tarfile.open (name = none, mode = 'r', fileObj = none, bufsize = 10240, ** kwargs) ¶open(name=None, mode='r',
fileobj=None, bufsize=10240, **kwargs)¶Trả về một đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 cho tên đường dẫn. Để biết thông tin chi tiết về các đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 và các đối số từ khóa được cho phép, hãy xem các đối tượng Tarfile.TarFile Objects.
Chế độ phải là một chuỗi của Mẫu $ python -m tarfile -e monty.tar
0, nó mặc định là $ python -m tarfile -e monty.tar
1. Dưới đây là danh sách đầy đủ các kết hợp chế độ:
Lưu ý rằng $ python -m tarfile -l monty.tar
1, $ python -m tarfile -l monty.tar
2 hoặc $ python -m tarfile -l monty.tar
3 là không thể. Nếu chế độ không phù hợp để mở một tệp (nén) nhất định để đọc, $ python -m tarfile -l monty.tar
4 sẽ được nâng lên. Sử dụng chế độ $ python -m tarfile -e monty.tar
1 để tránh điều này. Nếu một phương pháp nén không được hỗ trợ, $ python -m tarfile -l monty.tar
6 sẽ được nâng lên.Nếu FileObj được chỉ định, nó được sử dụng thay thế cho một đối tượng tệp được mở ở chế độ nhị phân cho tên. Nó được cho là ở vị trí 0.file object opened in binary mode for name. It is supposed to be at position 0. Đối với các chế độ $ python -m tarfile -e monty.tar other-dir/
8, $ python -m tarfile -e monty.tar
4, $ python -m tarfile -e monty.tar other-dir/
9, $ python -m tarfile -e monty.tar
5, $ python -m tarfile -e monty.tar other-dir/
0, $ python -m tarfile -e monty.tar other-dir/
2, import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()3 chấp nhận nén đối số từ khóa (mặc định import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()4) để chỉ định mức nén của tệp. Đối với các chế độ $ python -m tarfile -l monty.tar
0 và $ python -m tarfile -e monty.tar other-dir/
4, import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()3 chấp nhận cài đặt trước từ khóa để chỉ định mức nén của tệp. Đối với các mục đích đặc biệt, có một định dạng thứ hai cho chế độ: import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()8. import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()3 sẽ trả về một đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 xử lý dữ liệu của nó dưới dạng luồng khối. Không có tìm kiếm ngẫu nhiên sẽ được thực hiện trên tập tin. Nếu được đưa ra, FileObj có thể là bất kỳ đối tượng nào có phương thức import os import tarfile def py_files(members): for tarinfo in members: if os.path.splitext(tarinfo.name)[1] == ".py": yield tarinfo tar = tarfile.open("sample.tar.gz") tar.extractall(members=py_files(tar)) tar.close()1 hoặc import os import tarfile def py_files(members): for tarinfo in members: if os.path.splitext(tarinfo.name)[1] == ".py": yield tarinfo tar = tarfile.open("sample.tar.gz") tar.extractall(members=py_files(tar)) tar.close()2 (tùy thuộc vào chế độ). BufSize chỉ định khối và mặc định là import os import tarfile def py_files(members): for tarinfo in members: if os.path.splitext(tarinfo.name)[1] == ".py": yield tarinfo tar = tarfile.open("sample.tar.gz") tar.extractall(members=py_files(tar)) tar.close()3 byte. Sử dụng biến thể này kết hợp với ví dụ: import os import tarfile def py_files(members): for tarinfo in members: if os.path.splitext(tarinfo.name)[1] == ".py": yield tarinfo tar = tarfile.open("sample.tar.gz") tar.extractall(members=py_files(tar)) tar.close()4, đối tượng tệp ổ cắm hoặc thiết bị băng. Tuy nhiên, một đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 như vậy bị giới hạn ở chỗ nó không cho phép truy cập ngẫu nhiên, xem các ví dụ. Các chế độ hiện có thể:file object or a tape device. However, such a $ python -m tarfile -c monty.tar life-of-brian_1979/
8 object is limited
in that it does not allow random access, see Examples. The currently possible modes:
Đã thay đổi trong phiên bản 3.5: Chế độ $ python -m tarfile -e monty.tar
7 (exclusive creation) mode was added.Thay đổi trong phiên bản 3.6: Tham số tên chấp nhận một đối tượng giống như đường dẫn.The name parameter accepts a path-like object. classtarfile.TarFiletarfile.TarFileLớp học để đọc và viết tài liệu lưu trữ tar. Không sử dụng lớp này trực tiếp: sử dụng import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()3 thay thế. Xem các đối tượng Tarfile.TarFile Objects. tarfile.is_tarfile (tên) ¶is_tarfile(name)¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 Nếu tên là tệp lưu trữ tar, mà mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 có thể đọc được. Tên có thể là một đối tượng import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()9, tệp hoặc giống như tệp. Đã thay đổi trong phiên bản 3.9: Hỗ trợ cho các đối tượng giống như tệp và tệp.Support for file and file-like objects. Mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 xác định các ngoại lệ sau: Exceptiontarfile.tarerror¶tarfile.TarError¶Lớp cơ sở cho tất cả các ngoại lệ $ python -m tarfile -c monty.tar life-of-brian_1979/
1. ExceptionTarfile.Readerror¶tarfile.ReadError¶Được nâng lên khi lưu trữ TAR được mở, điều đó không thể được xử lý bởi mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 hoặc bằng cách nào đó không hợp lệ. ExceptionTarfile.compressionError¶
tarfile.CompressionError¶Được nâng lên khi một phương pháp nén không được hỗ trợ hoặc khi dữ liệu không thể được giải mã đúng. ExceptionTarfile.streamerror¶ tarfile.StreamError¶Được nêu ra cho những hạn chế điển hình cho các đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 giống như luồng.Được nêu ra cho các lỗi không gây tử vong khi sử dụng import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)4, nhưng chỉ khi import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)5 import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)6. Được nâng lên bởi import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)7 nếu bộ đệm nó không hợp lệ. Các hằng số sau đây có sẵn ở cấp độ mô -đun: tarfile.encoding¶ENCODING¶Mã hóa ký tự mặc định: import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)8 trên Windows, giá trị được trả về bởi import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)9 nếu không. Mỗi hằng số sau đây xác định một định dạng lưu trữ TAR mà mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 có thể tạo. Xem phần Định dạng TAR được hỗ trợ để biết chi tiết.Supported tar formats for details.
tarfile.ustar_format¶USTAR_FORMAT¶POSIX.1-1988 (Ustar) định dạng. tarfile.gnu_format¶GNU_FORMAT¶Định dạng TAR GNU. tarfile.pax_format¶PAX_FORMAT¶Định dạng POSIX.1-2001 (PAX). tarfile.default_format¶DEFAULT_FORMAT¶Định dạng mặc định để tạo tài liệu lưu trữ. Đây là import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()1. Thay đổi trong phiên bản 3.8: Định dạng mặc định cho tài liệu lưu trữ mới đã được thay đổi thành import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()1 from import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()3. Đối tượng TarfileĐối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 cung cấp một giao diện cho lưu trữ tar. Một kho lưu trữ tar là một chuỗi các khối. Một thành viên lưu trữ (một tệp được lưu trữ) được tạo thành từ một khối tiêu đề theo sau là các khối dữ liệu. Có thể lưu trữ một tập tin trong kho lưu trữ tar nhiều lần. Mỗi thành viên lưu trữ được đại diện bởi một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5, xem các đối tượng Tarinfo để biết chi tiết.TarInfo Objects for details. Một đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 có thể được sử dụng làm trình quản lý ngữ cảnh trong câu lệnh import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()7. Nó sẽ tự động được đóng khi khối hoàn thành. Xin lưu ý rằng trong trường hợp ngoại lệ, một kho lưu trữ được mở để viết sẽ không được hoàn thiện; Chỉ các đối tượng tệp được sử dụng nội bộ sẽ được đóng. Xem phần ví dụ cho một trường hợp sử dụng.Examples section for a use case. Mới trong phiên bản 3.2: Đã thêm hỗ trợ cho giao thức quản lý bối cảnh.Added support for the context management protocol. classtarfile.tarfile (name = none, mode = 'r', fileObj = none, format = default_format, tarinfo = tarinfo, dereference = false 0, ErrorLevel = 0) ¶ tarfile.TarFile(name=None, mode='r', fileobj=None, format=DEFAULT_FORMAT, tarinfo=TarInfo, dereference=False, ignore_zeros=False, encoding=ENCODING, errors='surrogateescape', pax_headers=None, debug=0, errorlevel=0)¶Tất cả các đối số sau là tùy chọn và cũng có thể được truy cập dưới dạng thuộc tính thể hiện. Tên là tên đường dẫn của kho lưu trữ. Tên có thể là một đối tượng giống như đường dẫn. Nó có thể được bỏ qua nếu FileObj được đưa ra. Trong trường hợp này, thuộc tính đối tượng tệp ____ ____998 được sử dụng nếu nó tồn tại.path-like object. It can be omitted if fileobj is given. In this case, the file object’s import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()8 attribute is used if it exists. Chế độ là $ python -m tarfile -e monty.tar
1 để đọc từ kho lưu trữ hiện có, $ python -m tarfile -c monty.tar life-of-brian_1979/
00 để nối dữ liệu vào một tệp hiện có, $ python -m tarfile -c monty.tar life-of-brian_1979/
01 để tạo một tệp mới ghi đè lên một tệp hiện có hoặc $ python -m tarfile -e monty.tar
7 để tạo một tệp mới chỉ khi nó chưa tồn tại.Nếu FileObj được cung cấp, nó được sử dụng để đọc hoặc ghi dữ liệu. Nếu nó có thể được xác định, chế độ được ghi đè bởi chế độ FileObj. FileObj sẽ được sử dụng từ vị trí 0. Ghi chú FileObj không bị đóng, khi $ python -m tarfile -c monty.tar life-of-brian_1979/
8 bị đóng.Định dạng kiểm soát định dạng lưu trữ để viết. Nó phải là một trong những hằng số $ python -m tarfile -c monty.tar life-of-brian_1979/
04, import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()3 hoặc import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()1 được xác định ở cấp độ mô -đun. Khi đọc, định dạng sẽ được tự động phát hiện, ngay cả khi các định dạng khác nhau có mặt trong một kho lưu trữ duy nhất. Đối số Tarinfo có thể được sử dụng để thay thế lớp import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 mặc định bằng một đối số khác. Nếu dereference là $ python -m tarfile -c monty.tar life-of-brian_1979/
08, hãy thêm các liên kết tượng trưng và cứng vào kho lưu trữ. Nếu đó là import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7, hãy thêm nội dung của các tệp đích vào kho lưu trữ. Điều này không có tác dụng đối với các hệ thống không hỗ trợ các liên kết tượng trưng. Nếu bỏ qua_zeros là $ python -m tarfile -c monty.tar life-of-brian_1979/
08, hãy coi một khối trống là phần cuối của kho lưu trữ. Nếu đó là import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7, hãy bỏ qua các khối trống (và không hợp lệ) và cố gắng lấy càng nhiều thành viên càng tốt. Điều này chỉ hữu ích cho việc đọc tài liệu lưu trữ được nối hoặc bị hư hỏng. Gỡ lỗi có thể được đặt từ $ python -m tarfile -c monty.tar life-of-brian_1979/
12 (không có tin nhắn gỡ lỗi) cho đến $ python -m tarfile -c monty.tar life-of-brian_1979/
13 (tất cả các tin nhắn gỡ lỗi). Các tin nhắn được viết thành $ python -m tarfile -c monty.tar life-of-brian_1979/
14.Nếu ErrorLevel là $ python -m tarfile -c monty.tar life-of-brian_1979/
12, tất cả các lỗi sẽ bị bỏ qua khi sử dụng import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)4. Tuy nhiên, chúng xuất hiện dưới dạng thông báo lỗi trong đầu ra gỡ lỗi, khi gỡ lỗi được bật. Nếu $ python -m tarfile -c monty.tar life-of-brian_1979/
17, tất cả các lỗi gây tử vong được nêu ra dưới dạng $ python -m tarfile -c monty.tar life-of-brian_1979/
18 ngoại lệ. Nếu $ python -m tarfile -c monty.tar life-of-brian_1979/
19, tất cả các lỗi không gây tử vong cũng được nêu ra dưới dạng $ python -m tarfile -c monty.tar life-of-brian_1979/
20 ngoại lệ.Các đối số mã hóa và lỗi xác định mã hóa ký tự được sử dụng để đọc hoặc viết kho lưu trữ và cách xử lý lỗi chuyển đổi. Các cài đặt mặc định sẽ hoạt động cho hầu hết người dùng. Xem phần Các vấn đề Unicode để biết thông tin chuyên sâu.Unicode issues for in-depth information. Đối số PAX_Headers là một từ điển tùy chọn của các chuỗi sẽ được thêm vào dưới dạng tiêu đề toàn cầu PAX nếu định dạng là import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()1. Đã thay đổi trong phiên bản 3.2: Sử dụng $ python -m tarfile -c monty.tar life-of-brian_1979/
22 as the default for the errors argument.Đã thay đổi trong phiên bản 3.5: Chế độ $ python -m tarfile -e monty.tar
7 (exclusive creation)
mode was added.Thay đổi trong phiên bản 3.6: Tham số tên chấp nhận một đối tượng giống như đường dẫn.The name parameter accepts a path-like object. classmethodtarfile.open (...) ¶ TarFile.open(...)¶Nhà xây dựng thay thế. Hàm import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close()3 thực sự là một lối tắt của ClassMethod này. Tarfile.getmember (tên) ¶getmember(name)¶ Trả về một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 cho tên thành viên. Nếu không thể tìm thấy tên trong kho lưu trữ, $ python -m tarfile -c monty.tar life-of-brian_1979/
26 sẽ được nêu ra.Ghi chú Nếu một thành viên xảy ra nhiều hơn một lần trong kho lưu trữ, sự xuất hiện cuối cùng của nó được coi là phiên bản cập nhật nhất. Tarfile.getmembers () ¶getmembers()¶Trả về các thành viên của kho lưu trữ dưới dạng danh sách các đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. Danh sách có cùng thứ tự như các thành viên trong kho lưu trữ. Tarfile.getnames ()getnames()¶ Trả lại các thành viên như một danh sách tên của họ. Nó có cùng thứ tự như danh sách được trả về bởi $ python -m tarfile -c monty.tar life-of-brian_1979/
28. Tarfile.list (verbose = true, *, thành viên = none) ¶list(verbose=True, *,
members=None)¶In một bảng nội dung thành $ python -m tarfile -c monty.tar life-of-brian_1979/
29. Nếu dài dòng là $ python -m tarfile -c monty.tar life-of-brian_1979/
08, chỉ có tên của các thành viên được in. Nếu đó là import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7, đầu ra tương tự như LS -L được sản xuất. Nếu các thành viên tùy chọn được cung cấp, nó phải là một tập hợp con của danh sách được trả về bởi $ python -m tarfile -c monty.tar life-of-brian_1979/
28.ls -l is produced. If optional members is given, it must be a subset of the list returned by $ python -m tarfile -c monty.tar life-of-brian_1979/
28.Đã thay đổi trong phiên bản 3.5: Đã thêm tham số thành viên.Added the members parameter. Tarfile.next () ¶next()¶Trả về thành viên tiếp theo của kho lưu trữ dưới dạng đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5, khi $ python -m tarfile -c monty.tar life-of-brian_1979/
8 được mở để đọc. Trả lại $ python -m tarfile -c monty.tar life-of-brian_1979/
35 nếu không còn nữa.Trích xuất tất cả các thành viên từ kho lưu trữ đến thư mục làm việc hiện tại hoặc đường dẫn thư mục. Nếu các thành viên tùy chọn được cung cấp, nó phải là một tập hợp con của danh sách được trả về bởi $ python -m tarfile -c monty.tar life-of-brian_1979/
28. Thông tin thư mục như chủ sở hữu, thời gian sửa đổi và quyền được đặt sau khi tất cả các thành viên đã được trích xuất. Điều này được thực hiện để giải quyết hai vấn đề: Thời gian sửa đổi thư mục được đặt lại mỗi khi một tệp được tạo trong đó. Và, nếu các quyền của thư mục không cho phép viết, trích xuất các tệp vào nó sẽ không thành công.Nếu numeric_owner là import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7, các số UID và GID từ tarfile được sử dụng để đặt chủ sở hữu/nhóm cho các tệp được trích xuất. Mặt khác, các giá trị được đặt tên từ tarfile được sử dụng. Cảnh báo Không bao giờ trích xuất tài liệu lưu trữ từ các nguồn không tin cậy mà không kiểm tra trước. Có thể các tệp được tạo bên ngoài đường dẫn, ví dụ: Các thành viên có tên tệp tuyệt đối bắt đầu bằng $ python -m tarfile -c monty.tar life-of-brian_1979/
38 hoặc tên tệp với hai dấu chấm $ python -m tarfile -c monty.tar life-of-brian_1979/
39.Đã thay đổi trong phiên bản 3.5: Đã thêm tham số numeric_owner.Added the numeric_owner parameter. Thay đổi trong phiên bản 3.6: Tham số đường dẫn chấp nhận một đối tượng giống như đường dẫn.The path parameter accepts a path-like object. Trích xuất một thành viên từ kho lưu trữ đến thư mục làm việc hiện tại, sử dụng tên đầy đủ của nó. Thông tin tệp của nó được trích xuất chính xác nhất có thể. Thành viên có thể là một tên tệp hoặc đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. Bạn có thể chỉ định một thư mục khác nhau bằng đường dẫn. Đường dẫn có thể là một đối tượng giống như đường dẫn. Các thuộc tính tệp (chủ sở hữu, mtime, chế độ) được đặt trừ khi set_attrs là sai.path-like object. File attributes (owner, mtime, mode) are set unless set_attrs is false. Nếu numeric_owner là import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7, các số UID và GID từ tarfile được sử dụng để đặt chủ sở hữu/nhóm cho các tệp được trích xuất. Mặt khác, các giá trị được đặt tên từ tarfile được sử dụng. Ghi chú Nếu một thành viên xảy ra nhiều hơn một lần trong kho lưu trữ, sự xuất hiện cuối cùng của nó được coi là phiên bản cập nhật nhất. Tarfile.getmembers () ¶Added the set_attrs parameter. Đã thay đổi trong phiên bản 3.5: Đã thêm tham số numeric_owner.Added the numeric_owner parameter. Thay đổi trong phiên bản 3.6: Tham số đường dẫn chấp nhận một đối tượng giống như đường dẫn.The path parameter accepts a path-like object. Trích xuất một thành viên từ kho lưu trữ đến thư mục làm việc hiện tại, sử dụng tên đầy đủ của nó. Thông tin tệp của nó được trích xuất chính xác nhất có thể. Thành viên có thể là một tên tệp hoặc đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. Bạn có thể chỉ định một thư mục khác nhau bằng đường dẫn. Đường dẫn có thể là một đối tượng giống như đường dẫn. Các thuộc tính tệp (chủ sở hữu, mtime, chế độ) được đặt trừ khi set_attrs là sai. Phương pháp $ python -m tarfile -c monty.tar life-of-brian_1979/
42 không giải quyết một số vấn đề trích xuất. Trong hầu hết các trường hợp, bạn nên xem xét sử dụng phương pháp $ python -m tarfile -c monty.tar life-of-brian_1979/
43.add(name, arcname=None, recursive=True, *,
filter=None)¶Đã thay đổi trong phiên bản 3.2: Đã thêm tham số SET_ATTRS.Examples for an example. Trích xuất một thành viên từ kho lưu trữ dưới dạng đối tượng tệp. Thành viên có thể là một tên tệp hoặc đối tượng Tarfile.add (tên, arcName = none, recursive = true, *, filter = none) ¶Recursion adds entries in sorted order. Thêm tên tệp vào kho lưu trữ. Tên có thể là bất kỳ loại tệp nào (thư mục, FIFO, liên kết tượng trưng, v.v.). Nếu được đưa ra, ArcName chỉ định một tên thay thế cho tệp trong kho lưu trữ. Các thư mục được thêm vào đệ quy theo mặc định. Điều này có thể tránh được bằng cách đặt đệ quy thành$ python -m tarfile -c monty.tar life-of-brian_1979/
08. Đệ quy thêm các mục theo thứ tự sắp xếp. Nếu bộ lọc được đưa ra, nó phải là một hàm có đối số đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 và trả về đối tượng ____995 đã thay đổi. Thay vào đó, nếu nó trả về $ python -m tarfile -c monty.tar life-of-brian_1979/
35 đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 sẽ được loại trừ khỏi kho lưu trữ. Xem ví dụ cho một ví dụ.addfile(tarinfo, fileobj=None)¶ Thêm đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 Tarinfo vào kho lưu trữ. Nếu FileObj được cung cấp, nó phải là một tệp nhị phân và $ python -m tarfile -c monty.tar life-of-brian_1979/
54 byte được đọc từ nó và được thêm vào kho lưu trữ. Bạn có thể tạo các đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 trực tiếp hoặc bằng cách sử dụng $ python -m tarfile -c monty.tar life-of-brian_1979/
56.binary file, and $ python -m tarfile -c monty.tar life-of-brian_1979/
54 bytes are read from it and added to the archive. You can create import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 objects directly, or by using $ python -m tarfile -c monty.tar life-of-brian_1979/
56.
Tarfile.gettarinfo (name = none, arcName = none, fileObj = none) ¶gettarinfo(name=None, arcname=None,
fileobj=None)¶Tạo một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 từ kết quả của $ python -m tarfile -c monty.tar life-of-brian_1979/
58 hoặc tương đương trên một tệp hiện có. Tệp được đặt tên theo tên hoặc được chỉ định là một tệp tệp FileObj với bộ mô tả tệp. Tên có thể là một đối tượng giống như đường dẫn. Nếu được đưa ra, ArcName chỉ định một tên thay thế cho tệp trong kho lưu trữ, nếu không, tên được lấy từ thuộc tính FileObJ tựa ____998 hoặc đối số tên. Tên phải là một chuỗi văn bản.file object fileobj with a file descriptor. name may be a path-like object.
If given, arcname specifies an alternative name for the file in the archive, otherwise, the name is taken from fileobj’s import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()8 attribute, or the name argument. The name should be a text string. Bạn có thể sửa đổi một số thuộc tính ____ 95 trước khi bạn thêm nó bằng $ python -m tarfile -c monty.tar life-of-brian_1979/
61. Nếu đối tượng tệp không phải là đối tượng tệp thông thường được định vị ở đầu tệp, các thuộc tính như $ python -m tarfile -c monty.tar life-of-brian_1979/
62 có thể cần sửa đổi. Đây là trường hợp cho các đối tượng như $ python -m tarfile -c monty.tar life-of-brian_1979/
63. import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()8 cũng có thể được sửa đổi, trong trường hợp arcName có thể là một chuỗi giả. Thay đổi trong phiên bản 3.6: Tham số tên chấp nhận một đối tượng giống như đường dẫn.The name parameter accepts a path-like object. Tarfile.close ()close()¶Đóng $ python -m tarfile -c monty.tar life-of-brian_1979/
8. Trong chế độ ghi, hai khối hoàn thiện không được nối vào kho lưu trữ.Một từ điển chứa các cặp tiêu đề toàn cầu giá trị PAX. Đối tượng TarinfoMột đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 đại diện cho một thành viên trong $ python -m tarfile -c monty.tar life-of-brian_1979/
8. Ngoài việc lưu trữ tất cả các thuộc tính cần thiết của một tệp (như loại tệp, kích thước, thời gian, quyền, chủ sở hữu, v.v.), nó cung cấp một số phương pháp hữu ích để xác định loại của nó. Nó không chứa dữ liệu của tập tin.Các đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 được trả về bằng các phương thức ____ 18 18 $ python -m tarfile -c monty.tar life-of-brian_1979/
70, $ python -m tarfile -c monty.tar life-of-brian_1979/
28 và $ python -m tarfile -c monty.tar life-of-brian_1979/
56. classtarfile.tarinfo (name = '') ¶tarfile.TarInfo(name='')¶Tạo một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. ClassMethodTarInfo.Frombuf (BUF, mã hóa, lỗi) ¶TarInfo.frombuf(buf, encoding, errors)¶ Tạo và trả về một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 từ bộ đệm chuỗi BUF. Tăng $ python -m tarfile -c monty.tar life-of-brian_1979/
75 nếu bộ đệm không hợp lệ. classmethodtarinfo.fromtarfile (Tarfile) ¶
TarInfo.fromtarfile(tarfile)¶Đọc thành viên tiếp theo từ đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
8 Tarfile và trả lại nó dưới dạng đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. Tarinfo.tobuf (format = default_format, mã hóa = mã hóa, lỗi = 'SurrogateScape') ¶tobuf(format=DEFAULT_FORMAT, encoding=ENCODING, errors='surrogateescape')¶ Tạo một bộ đệm chuỗi từ một đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5. Để biết thông tin về các đối số, hãy xem hàm tạo của lớp $ python -m tarfile -c monty.tar life-of-brian_1979/
8.Đã thay đổi trong phiên bản 3.2: Sử dụng $ python -m tarfile -c monty.tar life-of-brian_1979/
22 as the default for the errors argument.Đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 có các thuộc tính dữ liệu công khai sau: Tarinfo.name¶name¶ Tên của thành viên lưu trữ. Tarinfo.size¶size¶Kích thước trong byte. Tarinfo.Mtime¶mtime¶Thời gian sửa đổi cuối cùng. Tarinfo.Mode¶mode¶Bit cho phép. Tarinfo.type¶type¶Loại tệp. Loại thường là một trong những hằng số sau: $ python -m tarfile -c monty.tar life-of-brian_1979/
82, $ python -m tarfile -c monty.tar life-of-brian_1979/
83, $ python -m tarfile -c monty.tar life-of-brian_1979/
84, $ python -m tarfile -c monty.tar life-of-brian_1979/
85, $ python -m tarfile -c monty.tar life-of-brian_1979/
86, $ python -m tarfile -c monty.tar life-of-brian_1979/
87, $ python -m tarfile -c monty.tar life-of-brian_1979/
88, $ python -m tarfile -c monty.tar life-of-brian_1979/
89, $ python -m tarfile -c monty.tar life-of-brian_1979/
90, $ python -m tarfile -c monty.tar life-of-brian_1979/
91. Để xác định loại đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 thuận tiện hơn, hãy sử dụng các phương thức $ python -m tarfile -c monty.tar life-of-brian_1979/
93 bên dưới. Tarinfo.linkname¶linkname¶Tên của tên tệp đích, chỉ có trong các đối tượng ____95 loại $ python -m tarfile -c monty.tar life-of-brian_1979/
84 và $ python -m tarfile -c monty.tar life-of-brian_1979/
85.
Tarinfo.uid¶uid¶ID người dùng của người dùng ban đầu lưu trữ thành viên này. Tarinfo.gid¶gid¶Nhóm ID của người dùng ban đầu lưu trữ thành viên này. Tên tài khoản. Tarinfo.gname¶gname¶Tên nhóm. Một từ điển chứa các cặp giá trị khóa của một tiêu đề mở rộng PAX liên quan. Đối tượng import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()5 cũng cung cấp một số phương thức truy vấn thuận tiện: Tarinfo.isfile () ¶isfile()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 Nếu đối tượng $ python -m tarfile -c monty.tar life-of-brian_1979/
99 là một tệp thông thường. Tarinfo.isreg ()isreg()¶Giống như $ python -m tarfile -e monty.tar
00. Tarinfo.isdir ()isdir()¶Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là một thư mục. Tarinfo.issym () ¶issym()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là một liên kết tượng trưng. Tarinfo.islnk ()islnk()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là một liên kết cứng. Tarinfo.ischr ()ischr()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là một thiết bị ký tự. Tarinfo.isblk ()isblk()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là một thiết bị khối. Tarinfo.isfifo ()isfifo()¶ Trả lại import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 nếu đó là FIFO. Tarinfo.isdev ()isdev()¶ Trả về import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close()7 Nếu đó là một trong những thiết bị ký tự, thiết bị chặn hoặc FIFO. Giao diện dòng lệnhMới trong phiên bản 3.4. Mô-đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1 cung cấp giao diện dòng lệnh đơn giản để tương tác với tài liệu lưu trữ TAR.Nếu bạn muốn tạo một kho lưu trữ TAR mới, hãy chỉ định tên của nó sau tùy chọn $ python -m tarfile -e monty.tar
09 và sau đó liệt kê (các) tên tệp nên được bao gồm:$ python -m tarfile -c monty.tar spam.txt eggs.txt
Vượt qua một thư mục cũng được chấp nhận: $ python -m tarfile -c monty.tar life-of-brian_1979/
Nếu bạn muốn trích xuất một kho lưu trữ TAR vào thư mục hiện tại, hãy sử dụng tùy chọn $ python -m tarfile -e monty.tar
10:$ python -m tarfile -e monty.tar
Bạn cũng có thể trích xuất một kho lưu trữ TAR vào một thư mục khác bằng cách chuyển tên thư mục: $ python -m tarfile -e monty.tar other-dir/
Đối với danh sách các tệp trong kho lưu trữ TAR, hãy sử dụng tùy chọn $ python -m tarfile -e monty.tar
11:$ python -m tarfile -l monty.tar
Tùy chọn dòng lệnh mà-L¶ - -List¶Liệt kê các tập tin trong một tarfile. -c ... ¶ -tạo ra ... ¶Tạo Tarfile từ các tập tin nguồn. -e []Trích xuất Tarfile vào thư mục hiện tại nếu Output_DIR không được chỉ định. -T¶ -Test¶Kiểm tra xem Tarfile có hợp lệ hay không. -V,-Verbose¶, --verbose¶Báo cáo dài dòng. Ví dụ;Cách trích xuất toàn bộ kho lưu trữ TAR vào thư mục làm việc hiện tại: import tarfile tar = tarfile.open("sample.tar.gz") tar.extractall() tar.close() Cách trích xuất một tập hợp con của kho lưu trữ tar với $ python -m tarfile -e monty.tar
12 bằng cách sử dụng hàm máy phát thay vì danh sách:import os import tarfile def py_files(members): for tarinfo in members: if os.path.splitext(tarinfo.name)[1] == ".py": yield tarinfo tar = tarfile.open("sample.tar.gz") tar.extractall(members=py_files(tar)) tar.close() Cách tạo một kho lưu trữ TAR không nén từ danh sách các tên tệp: import tarfile tar = tarfile.open("sample.tar", "w") for name in ["foo", "bar", "quux"]: tar.add(name) tar.close() Ví dụ tương tự bằng cách sử dụng câu lệnh import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()7: import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name) Cách đọc Lưu trữ TAR nén GZIP và hiển thị một số thông tin thành viên: import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close() Cách tạo kho lưu trữ và đặt lại thông tin người dùng bằng tham số bộ lọc trong $ python -m tarfile -e monty.tar
14:$ python -m tarfile -c monty.tar life-of-brian_1979/
0Các định dạng tar được hỗ trợCó ba định dạng TAR có thể được tạo với mô -đun $ python -m tarfile -c monty.tar life-of-brian_1979/
1:
Có một số biến thể khác của định dạng TAR có thể được đọc, nhưng không được tạo ra:
Các vấn đề về UnicodeĐịnh dạng TAR ban đầu được hình thành để tạo các bản sao lưu trên các ổ đĩa băng với trọng tâm chính là lưu giữ thông tin hệ thống tệp. Ngày nay, tài liệu lưu trữ TAR thường được sử dụng để phân phối tệp và trao đổi lưu trữ qua các mạng. Một vấn đề của định dạng gốc (là cơ sở của tất cả các định dạng khác) là không có khái niệm hỗ trợ mã hóa ký tự khác nhau. Ví dụ, một kho lưu trữ tar thông thường được tạo trên hệ thống UTF-8 không thể được đọc chính xác trên hệ thống Latin-1 nếu nó chứa các ký tự không phải ASCII. Siêu dữ liệu văn bản (như tên tệp, tên liên kết, tên người dùng/nhóm) sẽ xuất hiện bị hỏng. Thật không may, không có cách nào để tự động hóa mã hóa của một kho lưu trữ. Định dạng PAX được thiết kế để giải quyết vấn đề này. Nó lưu trữ siêu dữ liệu không ASCII bằng cách sử dụng mã hóa ký tự phổ quát UTF-8. Các chi tiết chuyển đổi ký tự trong $ python -m tarfile -c monty.tar life-of-brian_1979/
1 được kiểm soát bởi các đối số từ khóa mã hóa và lỗi của lớp $ python -m tarfile -c monty.tar life-of-brian_1979/
8.Mã hóa xác định mã hóa ký tự để sử dụng cho siêu dữ liệu trong kho lưu trữ. Giá trị mặc định là import tarfile with tarfile.open("sample.tar", "w") as tar: for name in ["foo", "bar", "quux"]: tar.add(name)9 hoặc $ python -m tarfile -e monty.tar
23 dưới dạng dự phòng. Tùy thuộc vào việc lưu trữ được đọc hay viết, siêu dữ liệu phải được giải mã hoặc mã hóa. Nếu mã hóa không được đặt một cách thích hợp, chuyển đổi này có thể thất bại.Đối số lỗi xác định cách các ký tự được đối xử không thể chuyển đổi. Các giá trị có thể được liệt kê trong phần xử lý lỗi. Sơ đồ mặc định là $ python -m tarfile -c monty.tar life-of-brian_1979/
22 mà Python cũng sử dụng cho các cuộc gọi hệ thống tệp của mình, xem tên tệp, đối số dòng lệnh và các biến môi trường.Error Handlers. The default scheme is $ python -m tarfile -c monty.tar life-of-brian_1979/
22 which Python also uses for its file system calls, see
File Names, Command Line Arguments, and Environment Variables.Đối với tài liệu lưu trữ import tarfile tar = tarfile.open("sample.tar.gz", "r:gz") for tarinfo in tar: print(tarinfo.name, "is", tarinfo.size, "bytes in size and is ", end="") if tarinfo.isreg(): print("a regular file.") elif tarinfo.isdir(): print("a directory.") else: print("something else.") tar.close()1 (mặc định), mã hóa thường không cần thiết vì tất cả các siêu dữ liệu được lưu trữ bằng UTF-8. Mã hóa chỉ được sử dụng trong các trường hợp hiếm hoi khi các tiêu đề PAX nhị phân được giải mã hoặc khi các chuỗi có ký tự thay thế được lưu trữ. |