[Pythonjp-checkins] [python-doc-ja] push by hinac****@gmail***** - update 2.7.2: library/shutil on 2011-11-17 02:43 GMT

アーカイブの一覧に戻る

pytho****@googl***** pytho****@googl*****
2011年 11月 17日 (木) 11:44:30 JST


Revision: 31cec88ca2ca
Author:   Arihiro TAKASE <hinac****@gmail*****>
Date:     Wed Nov 16 18:43:19 2011
Log:      update 2.7.2: library/shutil
http://code.google.com/p/python-doc-ja/source/detail?r=31cec88ca2ca

Modified:
  /library/shutil.rst

=======================================
--- /library/shutil.rst	Sat Apr 16 17:12:19 2011
+++ /library/shutil.rst	Wed Nov 16 18:43:19 2011
@@ -13,29 +13,28 @@
  特にファイルのコピーや削除のための関数が用意されています。
  個別のファイルに対する操作については、 :mod:`os` モジュールを参照してくださ 
い。

+.. seealso::
+
+   Latest version of the `shutil module Python source code
+    
<http://svn.python.org/view/python/branches/release27-maint/Lib/shutil.py?view=markup>`_
+
  .. index::
     single: file; copying
     single: copying files

  .. warning::
-   .. Even the higher-level file copying functions  
(:func:`copy`, :func:`copy2`)
-      can't copy all file metadata.
-
     高レベルなファイルコピー関数(:func:`copy`, :func:`copy2`)でも、全てのフ 
ァイルの
     メタデータをコピーできるわけではありません。

-   .. On POSIX platforms, this means that file owner and group are lost as  
well
-      as ACLs.  On Mac OS, the resource fork and other metadata are not  
used.
-      This means that resources will be lost and file type and creator  
codes will
-      not be correct. On Windows, file owners, ACLs and alternate data  
streams
-      are not copied.
-
     POSIXプラットフォームでは、これはACLやファイルのオーナー、グループが失わ 
れることを意味しています。
     Mac OSでは、リソースフォーク(resource fork)やその他のメタデータが利用さ 
れません。
     これは、リソースが失われ、ファイルタイプや生成者コード(creator code)が正 
しくなくなることを意味しています。
     Windowsでは、ファイルオーナー、ACL、代替データストリームがコピーされませ 
ん。


+ディレクトリとファイルの操作
+----------------------------
+
  .. function:: copyfileobj(fsrc, fdst[, length])

     ファイル形式のオブジェクト *fsrc* の内容を *fdst* へコピーします。整数 
値 *length* はバッファサイズを表します。特に負の *length* は
@@ -46,15 +45,6 @@

  .. function:: copyfile(src, dst)

-   .. Copy the contents (no metadata) of the file named *src* to a file  
named *dst*.
-      *dst* must be the complete target file name; look at :func:`copy`  
for a copy that
-      accepts a target directory path.  If *src* and *dst* are the same  
files,
-      :exc:`Error` is raised.
-      The destination location must be writable; otherwise,   
an :exc:`IOError` exception
-      will be raised. If *dst* already exists, it will be replaced.    
Special files
-      such as character or block devices and pipes cannot be copied with  
this
-      function.  *src* and *dst* are path names given as strings.
-
     *src* で指定されたファイルの内容を *dst* で指定されたファイルへとコピー 
します。(メタデータはコピーされません)
     *dst* は完全なターゲットファイル名である必要があります。
     コピー先にディレクトリ名を使用したい場合は、 :func:`copy` を参照してくだ 
さい。
@@ -94,11 +84,6 @@

  .. function:: ignore_patterns(\*patterns)

-   ..
-      This factory function creates a function that can be used as a  
callable for
-      :func:`copytree` \'s *ignore* argument, ignoring files and  
directories that
-      match one of the glob-style *patterns* provided.  See the example  
below.
-
     このファクトリ関数は、 :func:`copytree` 関数の *ignore* 引数に渡すための 
呼び出し可能
     オブジェクトを作成します。
     glob形式の *patterns* にマッチするファイルやディレクトリが無視されます。
@@ -109,35 +94,15 @@

  .. function:: copytree(src, dst[, symlinks])

-   .. Recursively copy an entire directory tree rooted at *src*.  The  
destination
-      directory, named by *dst*, must not already exist; it will be  
created as well
-      as missing parent directories.  Permissions and times of directories  
are
-      copied with :func:`copystat`, individual files are copied using
-      :func:`copy2`.
-
     *src* を起点としたディレクトリツリーをコピーします。
     *dst* で指定されたターゲットディレクトリは、既存のもので無い必要がありま 
す。
     存在しない親ディレクトリも含めて作成されます。パーミッションと時刻は
     :func:`copystat` 関数でコピーされます。個々のファイルは :func:`copy2` に 
よってコピーされます。

-   .. If *symlinks* is true, symbolic links in the source tree are  
represented as
-      symbolic links in the new tree; if false or omitted, the contents of  
the
-      linked files are copied to the new tree.
-
     *symlinks* が真であれば、元のディレクトリ内のシンボリックリンクはコピー 
先のディレクトリ内へシンボリックリンクとして
     コピーされます。偽が与えられたり省略された場合は元のディレクトリ内のリン 
クの対象となっているファイルがコピー先のディレクトリ内へコピーされま
     す。

-   .. If *ignore* is given, it must be a callable that will receive as its
-      arguments the directory being visited by :func:`copytree`, and a  
list of its
-      contents, as returned by :func:`os.listdir`.  Since :func:`copytree`  
is
-      called recursively, the *ignore* callable will be called once for  
each
-      directory that is copied.  The callable must return a sequence of  
directory
-      and file names relative to the current directory (i.e. a subset of  
the items
-      in its second argument); these names will then be ignored in the copy
-      process.  :func:`ignore_patterns` can be used to create such a  
callable that
-      ignores names based on glob-style patterns.
-
     *ignore* 引数を利用する場合、その呼び出し可能オブジェクトは、引数とし 
て、
     :func:`copytree` が走査するディレクトリと、 :func:`os.listdir` が返すそ 
のディレクトリの内容を
     受け取ります。
@@ -209,8 +174,8 @@

  .. _shutil-example:

-使用例
-------
+copytree の例
+:::::::::::::

  以下は前述の :func:`copytree` 関数のドキュメント文字列を省略した実装例で 
す。本モジュールで提供される他の関数の使い方を示しています。 ::

@@ -273,3 +238,98 @@

     copytree(source, destination, ignore=_logpath)

+
+アーカイブの操作
+----------------
+
+.. function:: make_archive(base_name, format, [root_dir, [base_dir,  
[verbose, [dry_run, [owner, [group, [logger]]]]]]])
+
+   アーカイブファイル (zip や tar など) を作成し、その名前を返します。
+
+   *base_name* は作成するファイルの名前で、パスを含み、フォーマット特有の
+   拡張子はすべて除きます。 *format* はアーカイブフォーマットで、
+   "zip", "tar", "bztar" または "gztar" のいずれかです。
+
+   *root_dir* は、アーカイブのルートディレクトリとなるディレクトリです。
+   すなわち、一般的には、アーカイブを作成する前に *root_dir* を
+   カレントディレクトリにします。
+
+   *base_dir* は、アーカイブを開始するディレクトリです。
+   すなわち、 *base_dir* は、アーカイブのすべてのファイルとディレクトリに
+   共通する接頭辞になります。
+
+   *root_dir* と *base_dir* のどちらも、デフォルトはカレントディレクトリで 
す。
+
+   *owner* と *group* は、tar アーカイブを作成するときに使われます。
+   デフォルトでは、カレントのオーナとグループを使います。
+
+   .. versionadded:: 2.7
+
+
+.. function:: get_archive_formats()
+
+   アーカイブ化をサポートしているフォーマットのリストを返します。
+   返されるシーケンスのそれぞれの要素は、タプル ``(name, description)`` で 
す。
+
+   デフォルトでは、 :mod:`shutil` はこれらのフォーマットを提供しています:
+
+   - *gztar*: gzip された tar ファイル
+   - *bztar*: bzip2 された tar ファイル
+   - *tar*: 圧縮されていない tar ファイル
+   - *zip*: ZIP ファイル
+
+   :func:`register_archive_format` を使って、新しいフォーマットを登録した 
り、
+   既存のフォーマットに独自のアーカイバを提供したりできます。
+
+   .. versionadded:: 2.7
+
+
+.. function:: register_archive_format(name, function, [extra_args,  
[description]])
+
+   フォーマット *name* のアーカイバを登録します。 *function* は、アーカイバ 
を
+   呼び出すのに使われる呼び出し可能オブジェクトです。
+
+   *extra_args* は、与えられるなら ``(name, value)`` のシーケンスで、
+   アーカイバ呼び出し可能オブジェクトが使われるときの追加キーワード引数に
+   使われます。
+
+   *description* は、アーカイバのリストを返す :func:`get_archive_formats`
+   で使われます。デフォルトでは、空のリストです。
+
+   .. versionadded:: 2.7
+
+
+.. function::  unregister_archive_format(name)
+
+   アーカイブフォーマット *name* を、サポートされているフォーマットの
+   リストから取り除きます。
+
+   .. versionadded:: 2.7
+
+
+アーカイブ化の例
+::::::::::::::::
+
+この例では、ユーザの :file:`.ssh` ディレクトリにあるすべてのファイルを含 
む、
+gzip された tar ファイルアーカイブを作成します::
+
+    >>> from shutil import make_archive
+    >>> import os
+    >>> archive_name = os.path.expanduser(os.path.join('~', 'myarchive'))
+    >>> root_dir = os.path.expanduser(os.path.join('~', '.ssh'))
+    >>> make_archive(archive_name, 'gztar', root_dir)
+    '/Users/tarek/myarchive.tar.gz'
+
+結果のアーカイブは、以下のものを含みます::
+
+    $ tar -tzvf /Users/tarek/myarchive.tar.gz
+    drwx------ tarek/staff       0 2010-02-01 16:23:40 ./
+    -rw-r--r-- tarek/staff     609 2008-06-09 13:26:54 ./authorized_keys
+    -rwxr-xr-x tarek/staff      65 2008-06-09 13:26:54 ./config
+    -rwx------ tarek/staff     668 2008-06-09 13:26:54 ./id_dsa
+    -rwxr-xr-x tarek/staff     609 2008-06-09 13:26:54 ./id_dsa.pub
+    -rw------- tarek/staff    1675 2008-06-09 13:26:54 ./id_rsa
+    -rw-r--r-- tarek/staff     397 2008-06-09 13:26:54 ./id_rsa.pub
+    -rw-r--r-- tarek/staff   37192 2010-02-06 18:23:10 ./known_hosts
+
+




Pythonjp-checkins メーリングリストの案内
アーカイブの一覧に戻る