Personal tools
You are here: Home Lights on Zope python shutil.copytree でディレクトリを再帰的にコピー
« November 2017 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Recent entries
Python Anywhere seko 2016-11-19
帯状疱疹 seko 2016-11-18
Chromebook購入 seko 2016-11-03
マカロニさん めざせデータサイエンティスト seko 2016-11-02
脳波計muse 購入 seko 2016-09-04
フェルデンクライスメソッド227回目  seko 2016-08-27
EXCELマクロ タスクが残っていてTypeNameとShell.Applicationを使って起動済みのIEが探せない seko 2016-04-19
pythonでNITE 化学物質総合情報提供システムへアクセス seko 2016-04-19
Raspberry Pi 3で侵入者を発見 seko 2016-04-03
Raspberry Pi 3 OSのインストール seko 2016-04-02
Docker コンテナをexportするpythonスクリプト seko 2016-03-31
Effective Python ―Pythonプログラムを改良する59項目 seko 2016-03-30
確かな力が身につくPython「超」入門 鎌田 正浩 (著) seko 2016-03-29
pythonでバブルソート seko 2016-03-24
Recent trackbacks
シャネル財布激安 シャネル財布激安 2017-11-21
シャネルバッグコピー シャネルバッグコピー 2017-11-14
ブランドコピー ブランドコピー 2017-11-14
スーパーコピー代引き スーパーコピー代引き 2017-11-11
ウブロスーパーコピー ウブロスーパーコピー 2017-11-11
スーパーコピーブランド激安通販専門店シャネルバッグコピー品 スーパーコピーブランド激安通販専門店シャネルバッグコピー品 2017-11-08
ブランド財布コピー ブランド財布コピー 2017-11-07
ルイヴィトンダミエバッグコピー ルイヴィトンダミエバッグコピー 2017-11-07
ブランドスーパーコピー ブランドスーパーコピー 2017-11-06
ルイヴィトン 財布カンコク コピー ルイヴィトン 財布カンコク コピー 2017-11-05
エルメスバーキンバッグ エルメスバーキンバッグ 2017-11-01
ジェイコブ時計 ジェイコブ時計 2017-10-31
ブランドコピー激安販売通販 ブランドコピー激安販売通販 2017-10-30
偽ブランド時計 偽ブランド時計 2017-10-30
 
Document Actions

python shutil.copytree でディレクトリを再帰的にコピー

by seko posted at 2008-08-28 20:57 last modified 2008-08-28 21:39

今まで、pythonでファイルをコピーするときは、os.listdirを使ってファイルを選び、shuitl.copy2を使っていました。

ところが、今日マニュアルを見てみると、shutil.copytree というものがあり、それを使えば2二行でc:/backupからd:/backupにファイルを再帰的にコピーできることがわかりました。

Windowsで暗号化したファイルを手動でNTFSフォーマットされた外付けUSBディスクにコピーすると、暗号が解除されないままコピーされます。 PCが壊れていざバックアップを使おうと思った時に、暗号化されていて読めなかった情けない経験があります。

下のプログラムを使えば、NTFSにコピーしても暗号化は解除されるし、日付もそのままです。 これはすばらしいですね。

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
import shutil
shutil.copytree('c:/backup','d:/backup')

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

 def copytree(src, dst, symlinks=0):
    names = os.listdir(src)
    os.mkdir(dst)
    for name in names:
        srcname = os.path.join(src, name)
        dstname = os.path.join(dst, name)
        try:
            if symlinks and os.path.islink(srcname):
                linkto = os.readlink(srcname)
                os.symlink(linkto, dstname)
            elif os.path.isdir(srcname):
                copytree(srcname, dstname, symlinks)
            else:
                copy2(srcname, dstname)
        except (IOError, os.error), why:
            print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))
Category(s)
python
The URL to Trackback this entry is:
http://lightson.dip.jp/blog/seko/1730/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)


Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: