💾 Archived View for tris.fyi › pydoc › zipfile captured on 2022-01-08 at 13:44:04. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Read and write ZIP files. XXX references to utf-8 need further investigation.
with_traceback(...) Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
with_traceback(...) Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
A ZipFile subclass that ensures that implied directories are always included in the namelist.
close(self) Close the file, and for mode 'w', 'x' and 'a' write the ending records.
extract(self, member, path=None, pwd=None) Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can specify a different directory using `path'.
extractall(self, path=None, members=None, pwd=None) Extract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned by namelist().
getinfo(self, name) Return the instance of ZipInfo given 'name'.
infolist(self) Return a list of class ZipInfo instances for files in the archive.
make(source) Given a source (filename or zipfile), return an appropriate CompleteDirs subclass.
namelist(self)
open(self, name, mode='r', pwd=None, *, force_zip64=False) Return file-like object for 'name'. name is a string for the file name within the ZIP file, or a ZipInfo object. mode should be 'r' to read a file already in the ZIP file, or 'w' to write to a file newly added to the archive. pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed 2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large files. If the size is known in advance, it is best to pass a ZipInfo instance for name, with zinfo.file_size set.
printdir(self, file=None) Print a table of contents for the zip file.
read(self, name, pwd=None) Return file bytes for name.
resolve_dir(self, name) If the name represents a directory, return that name as a directory (with the trailing slash).
setpassword(self, pwd) Set default password for encrypted files.
testzip(self) Read all the files and check the CRC.
write(self, filename, arcname=None, compress_type=None, compresslevel=None) Put the bytes from filename into the archive under the name arcname.
writestr(self, zinfo_or_arcname, data, compress_type=None, compresslevel=None) Write a file into the archive. The contents is 'data', which may be either a 'str' or a 'bytes' instance; if it is a 'str', it is encoded as UTF-8 first. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.
comment = <property object at 0x7f056740fe50> The comment text associated with the ZIP file.
fp = None
ZipFile subclass to ensure implicit dirs exist and are resolved rapidly.
close(self) Close the file, and for mode 'w', 'x' and 'a' write the ending records.
extract(self, member, path=None, pwd=None) Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can specify a different directory using `path'.
extractall(self, path=None, members=None, pwd=None) Extract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned by namelist().
getinfo(self, name) Return the instance of ZipInfo given 'name'.
infolist(self) Return a list of class ZipInfo instances for files in the archive.
make(source) Given a source (filename or zipfile), return an appropriate CompleteDirs subclass.
namelist(self)
open(self, name, mode='r', pwd=None, *, force_zip64=False) Return file-like object for 'name'. name is a string for the file name within the ZIP file, or a ZipInfo object. mode should be 'r' to read a file already in the ZIP file, or 'w' to write to a file newly added to the archive. pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed 2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large files. If the size is known in advance, it is best to pass a ZipInfo instance for name, with zinfo.file_size set.
printdir(self, file=None) Print a table of contents for the zip file.
read(self, name, pwd=None) Return file bytes for name.
resolve_dir(self, name) If the name represents a directory, return that name as a directory (with the trailing slash).
setpassword(self, pwd) Set default password for encrypted files.
testzip(self) Read all the files and check the CRC.
write(self, filename, arcname=None, compress_type=None, compresslevel=None) Put the bytes from filename into the archive under the name arcname.
writestr(self, zinfo_or_arcname, data, compress_type=None, compresslevel=None) Write a file into the archive. The contents is 'data', which may be either a 'str' or a 'bytes' instance; if it is a 'str', it is encoded as UTF-8 first. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.
comment = <property object at 0x7f056740fe50> The comment text associated with the ZIP file.
fp = None
compress(self, data)
flush(self)
decompress(self, data)
Raised when writing a zipfile, the zipfile requires ZIP64 extensions and those extensions are disabled.
with_traceback(...) Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
A pathlib-compatible interface for zip files. Consider a zip file with this structure:: . ├── a.txt └── b ├── c.txt └── d └── e.txt >>> data = io.BytesIO() >>> zf = ZipFile(data, 'w') >>> zf.writestr('a.txt', 'content of a') >>> zf.writestr('b/c.txt', 'content of c') >>> zf.writestr('b/d/e.txt', 'content of e') >>> zf.filename = 'abcde.zip' Path accepts the zipfile object itself or a filename >>> root = Path(zf) From there, several path operations are available. Directory iteration (including the zip file itself): >>> a, b = root.iterdir() >>> a Path('abcde.zip', 'a.txt') >>> b Path('abcde.zip', 'b/') name property: >>> b.name 'b' join with divide operator: >>> c = b / 'c.txt' >>> c Path('abcde.zip', 'b/c.txt') >>> c.name 'c.txt' Read text: >>> c.read_text() 'content of c' existence: >>> c.exists() True >>> (b / 'missing.txt').exists() False Coercion to string: >>> str(c) 'abcde.zip/b/c.txt'
exists(self)
is_dir(self)
is_file(self)
iterdir(self)
joinpath(self, add)
open(self, mode='r', *args, **kwargs) Open this entry as text or binary following the semantics of ``pathlib.Path.open()`` by passing arguments through to io.TextIOWrapper().
read_bytes(self)
read_text(self, *args, **kwargs)
name = <property object at 0x7f056734b090>
parent = <property object at 0x7f056734b0e0>
Class to create ZIP archives with Python library files and packages.
close(self) Close the file, and for mode 'w', 'x' and 'a' write the ending records.
extract(self, member, path=None, pwd=None) Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can specify a different directory using `path'.
extractall(self, path=None, members=None, pwd=None) Extract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned by namelist().
getinfo(self, name) Return the instance of ZipInfo given 'name'.
infolist(self) Return a list of class ZipInfo instances for files in the archive.
namelist(self) Return a list of file names in the archive.
open(self, name, mode='r', pwd=None, *, force_zip64=False) Return file-like object for 'name'. name is a string for the file name within the ZIP file, or a ZipInfo object. mode should be 'r' to read a file already in the ZIP file, or 'w' to write to a file newly added to the archive. pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed 2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large files. If the size is known in advance, it is best to pass a ZipInfo instance for name, with zinfo.file_size set.
printdir(self, file=None) Print a table of contents for the zip file.
read(self, name, pwd=None) Return file bytes for name.
setpassword(self, pwd) Set default password for encrypted files.
testzip(self) Read all the files and check the CRC.
write(self, filename, arcname=None, compress_type=None, compresslevel=None) Put the bytes from filename into the archive under the name arcname.
writepy(self, pathname, basename='', filterfunc=None) Add all files from "pathname" to the ZIP archive. If pathname is a package directory, search the directory and all package subdirectories recursively for all *.py and enter the modules into the archive. If pathname is a plain directory, listdir *.py and enter all modules. Else, pathname must be a Python *.py file and the module will be put into the archive. Added modules are always module.pyc. This method will compile the module.py into module.pyc if necessary. If filterfunc(pathname) is given, it is called with every argument. When it is False, the file or directory is skipped.
writestr(self, zinfo_or_arcname, data, compress_type=None, compresslevel=None) Write a file into the archive. The contents is 'data', which may be either a 'str' or a 'bytes' instance; if it is a 'str', it is encoded as UTF-8 first. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.
comment = <property object at 0x7f056740fe50> The comment text associated with the ZIP file.
fp = None
File-like object for reading an archive member. Is returned by ZipFile.open().
close(self)
detach(self, /) Disconnect this buffer from its underlying raw stream and return it. After the raw stream has been detached, the buffer is in an unusable state.
fileno(self, /) Returns underlying file descriptor if one exists. OSError is raised if the IO object does not use a file descriptor.
flush(self, /) Flush write buffers, if applicable. This is not implemented for read-only and non-blocking streams.
isatty(self, /) Return whether this is an 'interactive' stream. Return False if it can't be determined.
peek(self, n=1) Returns buffered bytes without advancing the position.
read(self, n=-1) Read and return up to n bytes. If the argument is omitted, None, or negative, data is read and returned until EOF is reached.
read1(self, n) Read up to n bytes with at most one read() system call.
readable(self)
readinto(self, buffer, /)
readinto1(self, buffer, /)
readline(self, limit=-1) Read and return a line from the stream. If limit is specified, at most limit bytes will be read.
readlines(self, hint=-1, /) Return a list of lines from the stream. hint can be specified to control the number of lines read: no more lines will be read if the total size (in bytes/characters) of all lines so far exceeds hint.
seek(self, offset, whence=0)
seekable(self)
tell(self)
truncate(...) Truncate file to size bytes. File pointer is left unchanged. Size defaults to the current IO position as reported by tell(). Returns the new size.
writable(self, /) Return whether object was opened for writing. If False, write() will raise OSError.
write(...) Write the given buffer to the IO stream. Returns the number of bytes written, which is always the length of b in bytes. Raises BlockingIOError if the buffer is full and the underlying raw stream cannot accept more data at the moment.
writelines(self, lines, /) Write a list of lines to stream. Line separators are not added, so it is usual for each of the lines provided to have a line separator at the end.
MAX_N = 1073741824
MAX_SEEK_READ = 16777216
MIN_READ_SIZE = 4096
closed = <attribute 'closed' of '_io._IOBase' objects>
Class with methods to open, read, write, close, list zip files. z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=True, compresslevel=None) file: Either the path to the file, or a file-like object. If it is a path, the file will be opened and closed by ZipFile. mode: The mode can be either read 'r', write 'w', exclusive create 'x', or append 'a'. compression: ZIP_STORED (no compression), ZIP_DEFLATED (requires zlib), ZIP_BZIP2 (requires bz2) or ZIP_LZMA (requires lzma). allowZip64: if True ZipFile will create files with ZIP64 extensions when needed, otherwise it will raise an exception when this would be necessary. compresslevel: None (default for the given compression type) or an integer specifying the level to pass to the compressor. When using ZIP_STORED or ZIP_LZMA this keyword has no effect. When using ZIP_DEFLATED integers 0 through 9 are accepted. When using ZIP_BZIP2 integers 1 through 9 are accepted.
close(self) Close the file, and for mode 'w', 'x' and 'a' write the ending records.
extract(self, member, path=None, pwd=None) Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can specify a different directory using `path'.
extractall(self, path=None, members=None, pwd=None) Extract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned by namelist().
getinfo(self, name) Return the instance of ZipInfo given 'name'.
infolist(self) Return a list of class ZipInfo instances for files in the archive.
namelist(self) Return a list of file names in the archive.
open(self, name, mode='r', pwd=None, *, force_zip64=False) Return file-like object for 'name'. name is a string for the file name within the ZIP file, or a ZipInfo object. mode should be 'r' to read a file already in the ZIP file, or 'w' to write to a file newly added to the archive. pwd is the password to decrypt files (only used for reading). When writing, if the file size is not known in advance but may exceed 2 GiB, pass force_zip64 to use the ZIP64 format, which can handle large files. If the size is known in advance, it is best to pass a ZipInfo instance for name, with zinfo.file_size set.
printdir(self, file=None) Print a table of contents for the zip file.
read(self, name, pwd=None) Return file bytes for name.
setpassword(self, pwd) Set default password for encrypted files.
testzip(self) Read all the files and check the CRC.
write(self, filename, arcname=None, compress_type=None, compresslevel=None) Put the bytes from filename into the archive under the name arcname.
writestr(self, zinfo_or_arcname, data, compress_type=None, compresslevel=None) Write a file into the archive. The contents is 'data', which may be either a 'str' or a 'bytes' instance; if it is a 'str', it is encoded as UTF-8 first. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.
comment = <property object at 0x7f056740fe50> The comment text associated with the ZIP file.
fp = None
Class with attributes describing each file in the ZIP archive.
FileHeader(self, zip64=None) Return the per-file header as a bytes object.
from_file(filename, arcname=None, *, strict_timestamps=True) Construct an appropriate ZipInfo for a file on the filesystem. filename should be the path to a file or directory on the filesystem. arcname is the name which it will have within the archive (by default, this will be the same as filename, but without a drive letter and with leading path separators removed).
is_dir(self) Return True if this archive member is a directory.
CRC = <member 'CRC' of 'ZipInfo' objects>
comment = <member 'comment' of 'ZipInfo' objects>
compress_size = <member 'compress_size' of 'ZipInfo' objects>
compress_type = <member 'compress_type' of 'ZipInfo' objects>
create_system = <member 'create_system' of 'ZipInfo' objects>
create_version = <member 'create_version' of 'ZipInfo' objects>
date_time = <member 'date_time' of 'ZipInfo' objects>
external_attr = <member 'external_attr' of 'ZipInfo' objects>
extra = <member 'extra' of 'ZipInfo' objects>
extract_version = <member 'extract_version' of 'ZipInfo' objects>
file_size = <member 'file_size' of 'ZipInfo' objects>
filename = <member 'filename' of 'ZipInfo' objects>
flag_bits = <member 'flag_bits' of 'ZipInfo' objects>
header_offset = <member 'header_offset' of 'ZipInfo' objects>
internal_attr = <member 'internal_attr' of 'ZipInfo' objects>
orig_filename = <member 'orig_filename' of 'ZipInfo' objects>
reserved = <member 'reserved' of 'ZipInfo' objects>
volume = <member 'volume' of 'ZipInfo' objects>
with_traceback(...) Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
crc32(data, value=0, /) Compute a CRC-32 checksum of data. value Starting value of the checksum. The returned checksum is an integer.
is_zipfile(filename) Quickly see if a file is a ZIP file by checking the magic number. The filename argument may be a file or file-like object too.
main(args=None)
BZIP2_VERSION = 46
DEFAULT_VERSION = 20
LZMA_VERSION = 63
MAX_EXTRACT_VERSION = 63
ZIP64_LIMIT = 2147483647
ZIP64_VERSION = 45
ZIP_BZIP2 = 12
ZIP_DEFLATED = 8
ZIP_FILECOUNT_LIMIT = 65535
ZIP_LZMA = 14
ZIP_MAX_COMMENT = 65535
ZIP_STORED = 0
compressor_names = {0: 'store', 1: 'shrink', 2: 'reduce', 3: 'reduce', 4: 'reduce', 5: 'reduce', 6: 'implode', 7: 'tokenize', 8: 'deflate', 9: 'deflate64', 10: 'implode', 12: 'bzip2', 14: 'lzma', 18: 'terse', 19: 'lz77', 97: 'wavpack', 98: 'ppmd'}
sizeCentralDir = 46
sizeEndCentDir = 22
sizeEndCentDir64 = 56
sizeEndCentDir64Locator = 20
sizeFileHeader = 30
stringCentralDir = b'PK\x01\x02'
stringEndArchive = b'PK\x05\x06'
stringEndArchive64 = b'PK\x06\x06'
stringEndArchive64Locator = b'PK\x06\x07'
stringFileHeader = b'PK\x03\x04'
structCentralDir = '<4s4B4HL2L5H2L'
structEndArchive = b'<4s4H2LH'
structEndArchive64 = '<4sQ2H2L4Q'
structEndArchive64Locator = '<4sLQL'
structFileHeader = '<4s2B4HL2L2H'