HOME
Python
はじめに
環境構築
日時操作
文法
標準ライブラリ
データ型
リスト操作
辞書操作
Tkinter
組み込み関数
関数・クラス
コーヒーブレイク
Math関数
Twitter関連
開発環境
PHP
配列操作
文字列操作
変数操作
日付時刻
ファイル操作
ガジェット
デジタルカメラ
カメラ
フィルムカメラ
写真
DIY
PC関連
Raspberry Pi
自転車
100均
家電
日用品
鉄道
フェレット
プログラミング
karabiner
WordPress
vim
たばこ
ベース
うつ病
動画
雑記

【Python】ファイル操作:ファイルをコピーする(copyfile, copy, copy2)

<![CDATA[

はじめに

shutilモジュールのcopyfilecopycopy2を使用し、ファイル一覧を取得します。

copyfile関数を使ったファイルコピー

説明
shutil.copyfile(src, dst, *, follow_symlinks=True)

dstは書き込み可能でなければなりません。そうでない場合、OSError例外を送出します。dst がすでに存在する場合、そのファイルは置き換えられます。srcがシンボリックリンクの場合、リンク先をコピーします。

copy関数を使ったファイルコピー

説明
shutil.copy(src, dst, *, follow_symlinks=True)

copy関数はデータとパーミッション(Permission)をコピーします。

copy2関数を使ったファイルコピー

説明
shutil.copy2(src, dst, *, follow_symlinks=True)

copy2関数はデータとパーミッション(Permission)及び、メタデータをコピーします。

コード

Python
import shutil import glob print(glob.glob('./*.txt')) shutil.copyfile('aaa.txt', 'bbb.txt') # <-- copyfile関数 shutil.copy('aaa.txt', 'ccc.txt') # <-- copy関数 shutil.copy2('aaa.txt', 'ddd.txt') # <-- copy2関数 print(glob.glob('./*.txt'))

実行結果

実行結果
['./aaa.txt'] ['./aaa.txt', './bbb.txt', './ccc.txt', 'ddd.txt'] $ ls -la -rw-rw-rw- 1 py staff 12 12 31 23:51 aaa.txt -rw-r--r-- 1 py staff 12 12 31 23:55 bbb.txt # <-- copyfile関数の実行結果 -rw-rw-rw- 1 py staff 12 12 31 23:55 ccc.txt # <-- copy関数の実行結果 -rw-rw-rw- 1 py staff 12 12 31 23:51 ddd.txt # <-- copy2関数の実行結果

copyfile, copy, copy2はそれぞれファイルをコピー(データコピー)をしますが、パーミッション(ファイルのアクセス権限)や、メタデータ(作成日時、更新日時)をコピーするかどうかの違いがあります。

  • copyfile
    • ファイルのデータコピー
  • copy
    • ファイルのデータコピー
    • パーミッションのコピー
  • copy2
    • ファイルのデータコピー
    • パーミッションのコピー
    • メタデータのコピー

おわりに

OSによっては、メタデータのコピー内容に差がありますので、確認が必要です。

この記事がお役に立ちましたら幸いです。

では、また。

※本サイトの漫画やイラストはフィクションであり、実在の製品・団体・人物・地名とは関係ありません。
※本サイトに掲載する情報には充分に注意を払っておりますが、その内容について保証するものではありません。
※本サイトの使用ならびに閲覧によって生じたいかなる損害にも責任を負いかねます。

]]>

コメント

タイトルとURLをコピーしました