[Pythonjp-checkins] [python-doc-ja] push by songo****@gmail***** - Update 2.7.2: library/tarfile on 2011-11-23 11:36 GMT

Zurück zum Archiv-Index

pytho****@googl***** pytho****@googl*****
2011年 11月 23日 (水) 20:37:33 JST


Revision: a6b64e9f1a4d
Author:   Naoki INADA  <inada****@klab*****>
Date:     Wed Nov 23 03:36:23 2011
Log:      Update 2.7.2: library/tarfile
http://code.google.com/p/python-doc-ja/source/detail?r=a6b64e9f1a4d

Modified:
  /library/tarfile.rst

=======================================
--- /library/tarfile.rst	Sat Mar 26 09:59:10 2011
+++ /library/tarfile.rst	Wed Nov 23 03:36:23 2011
@@ -379,10 +379,19 @@
  .. object, see :ref:`tarinfo-objects` for details.

  :class:`TarFile` オブジェクトは、tar アーカイブへのインターフェースを提供し 
ます。 tar
-アーカイブは一連のブロックです。アーカイブメンバー(保存されたファイル)は、 
ヘッダーブロックとそれに続くデータブロックから構成されています。ある tar
+アーカイブは一連のブロックです。アーカイブメンバー(保存されたファイル)は、
+ヘッダーブロックとそれに続くデータブロックから構成されています。ある tar
  アーカイブにファイルを何回も保存することができます。各アーカイブメンバー 
は、 :class:`TarInfo`
  オブジェクトによって表わされます、詳細については :ref:`tarinfo-objects` を 
参照してください。

+:class:`TarFile` オブジェクトは :keyword:`with` 文によりコンテキストマネー 
ジャーとして
+利用できます。 with ブロックが終了したときにオブジェクトは close されます。
+例外が発生した時、内部で利用されているファイルオブジェクトのみが close さ 
れ、
+開かれたアーカイブは終了されないことに注意してください。
+:ref:`tar-examples` セクションにあるユースケースを参照してください。
+
+.. versionadded:: 2.7
+   コンテキストマネージャープロトコルがサポートされました。

  .. class:: TarFile(name=None, mode='r', fileobj=None,  
format=DEFAULT_FORMAT, tarinfo=TarInfo, dereference=False,  
ignore_zeros=False, encoding=ENCODING, errors=None, pax_headers=None,  
debug=0, errorlevel=0)

@@ -652,29 +661,34 @@
        行に対するイテレーションをサポートします。


-.. method:: TarFile.add(name, arcname=None, recursive=True, exclude=None)
-
-   .. Add the file *name* to the archive. *name* may be any type of file  
(directory,
-   .. fifo, symbolic link, etc.). If given, *arcname* specifies an  
alternative name
-   .. for the file in the archive. Directories are added recursively by  
default. This
-   .. can be avoided by setting *recursive* to :const:`False`. If  
*exclude* is given
-   .. it must be a function that takes one filename argument and returns a  
boolean
-   .. value. Depending on this value the respective file is either excluded
-   .. (:const:`True`) or added (:const:`False`).
-
-   ファイル *name* をアーカイブに追加します。 *name* は、任意のファイルタイ 
プ (ディレクトリ、fifo、シンボリックリンク等)です。
-   もし *arcname* が与えられていれば、それはアーカイブ内のファイルの代替名 
を指定します。デフォルトではディレクトリは再帰的に追加されます。
+.. method:: TarFile.add(name, arcname=None, recursive=True, exclude=None,  
filter=None)
+
+   ファイル *name* をアーカイブに追加します。
+   *name* は、任意のファイルタイプ (ディレクトリ、fifo、シンボリックリンク 
等)です。
+   もし *arcname* が与えられていれば、それはアーカイブ内のファイルの代替名 
を指定します。
+   デフォルトではディレクトリは再帰的に追加されます。
     これは、 *recursive* を :const:`False` に設定することで避けることができ 
ます。
-   *exclude* を指定する場合、それは1つのファイル名を引数にとってブール値を 
返す関数である必要があります。
-   この関数の戻り値が :const:`True` の場合、そのファイルが除外されま 
す。 :const:`False` の場合、そのファイルは追加されます。
-
-
-   .. .. versionchanged:: 2.6
-   ..    Added the *exclude* parameter.
+   *exclude* を指定する場合、それは1つのファイル名を引数にとってブール値を 
返す
+   関数である必要があります。
+   この関数の戻り値が :const:`True` の場合、そのファイルが除外されます。
+   :const:`False` の場合、そのファイルは追加されます。
+   *filter* を指定する場合、それは :class:`TarInfo` オブジェクトを引数とし 
て受け取り、
+   操作した :class:`TarInfo` オブジェクトを返す関数でなければなりません。
+   代わりに :const:`None` を返した場合、 :class:`TarInfo` オブジェクトは
+   アーカイブから除外されます。
+   :ref:`tar-examples` にある例を参照してください。

     .. versionchanged:: 2.6
        *exclude* 引数が追加されました。

+   .. versionchanged:: 2.7
+      *filter* 引数が追加されました。
+
+   .. deprecated:: 2.7
+      *exclude* 引数は廃止予定です。代わりに *filter* 引数を利用してくださ 
い。
+      将来 *exclude* 引数が削除されたときに互換性を保つため、
+      *filter* は位置引数ではなくてキーワード引数として利用するべきです。
+

  .. method:: TarFile.addfile(tarinfo, fileobj=None)

@@ -1035,6 +1049,12 @@
         tar.add(name)
     tar.close()

+:keyword:`with` 文を利用した同じ例::
+
+    import tarfile
+    with tarfile.open("sample.tar", "w") as tar:
+        for name in ["foo", "bar", "quux"]:
+            tar.add(name)

  .. How to read a gzip compressed tar archive and display some member  
information:

@@ -1056,6 +1076,19 @@
     tar.close()


+:meth:`TarFile.add` 関数の *filter* 引数を利用してユーザー情報をリセット
+しながらアーカイブを作成する例::
+
+    import tarfile
+    def reset(tarinfo):
+        tarinfo.uid = tarinfo.gid = 0
+        tarinfo.uname = tarinfo.gname = "root"
+        return tarinfo
+    tar = tarfile.open("sample.tar.gz", "w:gz")
+    tar.add("foo", filter=reset)
+    tar.close()
+
+
  .. _tar-formats:

  サポートされる tar のフォーマット




Pythonjp-checkins メーリングリストの案内
Zurück zum Archiv-Index