class lzma.LZMAFile(filename=None, mode="r", *, format=None, check=-1, preset=None, filters=None)
Open an LZMA-compressed file in binary mode.
An LZMAFile
can wrap an already-open file object, or operate directly on a named file. The filename argument specifies either the file object to wrap, or the name of the file to open (as a str
or bytes
object). When wrapping an existing file object, the wrapped file will not be closed when the LZMAFile
is closed.
The mode argument can be either "r"
for reading (default), "w"
for overwriting, "x"
for exclusive creation, or "a"
for appending. These can equivalently be given as "rb"
, "wb"
, "xb"
and "ab"
respectively.
If filename is a file object (rather than an actual file name), a mode of "w"
does not truncate the file, and is instead equivalent to "a"
.
When opening a file for reading, the input file may be the concatenation of multiple separate compressed streams. These are transparently decoded as a single logical stream.
When opening a file for reading, the format and filters arguments have the same meanings as for LZMADecompressor
. In this case, the check and preset arguments should not be used.
When opening a file for writing, the format, check, preset and filters arguments have the same meanings as for LZMACompressor
.
LZMAFile
supports all the members specified by io.BufferedIOBase
, except for detach()
and truncate()
. Iteration and the with
statement are supported.
The following method is also provided:
-
peek(size=-1)
-
Return buffered data without advancing the file position. At least one byte of data will be returned, unless EOF has been reached. The exact number of bytes returned is unspecified (the size argument is ignored).
Note
While calling
peek()
does not change the file position of theLZMAFile
, it may change the position of the underlying file object (e.g. if theLZMAFile
was constructed by passing a file object for filename).
Changed in version 3.4: Added support for the "x"
and "xb"
modes.
Changed in version 3.5: The read()
method now accepts an argument of None
.
Please login to continue.