mirror of
https://github.com/python/cpython.git
synced 2026-01-27 05:05:50 +00:00
[3.14] gh-86608: Improve and restructure tarfile examples (GH-121771) (#136866)
gh-86608: Improve and restructure tarfile examples (GH-121771) Add an example on how to write a tarfile to stdout; general improvements. (cherry picked from commit cc81b4e501138b5793d419c81c3a2859a17207a7) Co-authored-by: Dominic H <dom@dominic.sk> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
parent
c537b98e48
commit
2caae152b9
@ -1353,6 +1353,9 @@ Command-line options
|
||||
Examples
|
||||
--------
|
||||
|
||||
Reading examples
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
How to extract an entire tar archive to the current working directory::
|
||||
|
||||
import tarfile
|
||||
@ -1375,6 +1378,23 @@ a generator function instead of a list::
|
||||
tar.extractall(members=py_files(tar))
|
||||
tar.close()
|
||||
|
||||
How to read a gzip compressed tar archive and display some member information::
|
||||
|
||||
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()
|
||||
|
||||
Writing examples
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
How to create an uncompressed tar archive from a list of filenames::
|
||||
|
||||
import tarfile
|
||||
@ -1390,19 +1410,15 @@ The same example using the :keyword:`with` statement::
|
||||
for name in ["foo", "bar", "quux"]:
|
||||
tar.add(name)
|
||||
|
||||
How to read a gzip compressed tar archive and display some member information::
|
||||
How to create and write an archive to stdout using
|
||||
:data:`sys.stdout.buffer <sys.stdout>` in the *fileobj* parameter
|
||||
in :meth:`TarFile.add`::
|
||||
|
||||
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()
|
||||
import sys
|
||||
import tarfile
|
||||
with tarfile.open("sample.tar.gz", "w|gz", fileobj=sys.stdout.buffer) as tar:
|
||||
for name in ["foo", "bar", "quux"]:
|
||||
tar.add(name)
|
||||
|
||||
How to create an archive and reset the user information using the *filter*
|
||||
parameter in :meth:`TarFile.add`::
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user