summaryrefslogtreecommitdiffstats
path: root/Doc/lib
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2005-03-04 19:40:34 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2005-03-04 19:40:34 (GMT)
commit00a73e7715eb9bba3203aea6caa326f3f54a0d20 (patch)
treee65218da83a5f6e056ad81086c1c1d260cc1b1cf /Doc/lib
parentfd78a6f7f8c507678238c7264f7426c3148b6a84 (diff)
downloadcpython-00a73e7715eb9bba3203aea6caa326f3f54a0d20.zip
cpython-00a73e7715eb9bba3203aea6caa326f3f54a0d20.tar.gz
cpython-00a73e7715eb9bba3203aea6caa326f3f54a0d20.tar.bz2
Patch #1043890: tarfile: add extractall() method.
Diffstat (limited to 'Doc/lib')
-rw-r--r--Doc/lib/libtarfile.tex25
1 files changed, 25 insertions, 0 deletions
diff --git a/Doc/lib/libtarfile.tex b/Doc/lib/libtarfile.tex
index f7800de..018e8b9 100644
--- a/Doc/lib/libtarfile.tex
+++ b/Doc/lib/libtarfile.tex
@@ -196,12 +196,29 @@ tar archive several times. Each archive member is represented by a
more available.
\end{methoddesc}
+\begin{methoddesc}{extractall}{\optional{path\optional{, members}}}
+ Extract all members from the archive to the current working directory
+ or directory \var{path}. If optional \var{members} is given, it must be
+ a subset of the list returned by \method{getmembers()}.
+ Directory informations like owner, modification time and permissions are
+ set after all members have been extracted. This is done to work around two
+ problems: A directory's modification time is reset each time a file is
+ created in it. And, if a directory's permissions do not allow writing,
+ extracting files to it will fail.
+ \versionadded{2.5}
+\end{methoddesc}
+
\begin{methoddesc}{extract}{member\optional{, path}}
Extract a member from the archive to the current working directory,
using its full name. Its file information is extracted as accurately as
possible.
\var{member} may be a filename or a \class{TarInfo} object.
You can specify a different directory using \var{path}.
+ \begin{notice}
+ Because the \method{extract()} method allows random access to a tar
+ archive there are some issues you must take care of yourself. See the
+ description for \method{extractall()} above.
+ \end{notice}
\end{methoddesc}
\begin{methoddesc}{extractfile}{member}
@@ -416,6 +433,14 @@ A \class{TarInfo} object also provides some convenient query methods:
\subsection{Examples \label{tar-examples}}
+How to extract an entire tar archive to the current working directory:
+\begin{verbatim}
+import tarfile
+tar = tarfile.open("sample.tar.gz")
+tar.extractall()
+tar.close()
+\end{verbatim}
+
How to create an uncompressed tar archive from a list of filenames:
\begin{verbatim}
import tarfile