Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでバイナリファイルをコピーする方法|shutil.copyの使い方を解説

Pythonでファイルやフォルダをコピーしたい場合は、標準ライブラリのshutilモジュールを使うのが最も簡単です。shutilモジュールには、単一のファイルだけでなく、フォルダ全体をまとめてコピーするための関数も用意されています。

shutil.copy()の基本構文

ファイルをコピーするには、shutil.copy(source, destination) を呼び出します。このとき、source パスにあるファイルが destination パスのフォルダへコピーされます。両方の引数は文字列で指定します。

  • destinationにフォルダパスを指定した場合:そのフォルダ内に同じ名前でコピーされます。
  • destinationにファイル名を指定した場合:その名前がコピー先の新しいファイル名として使われます。

また、この関数はコピーされたファイルのパスを文字列として返す点も覚えておくと便利です。

使用例

>>> import shutil
>>> # 同じフォルダ内に別名でファイルをコピーする
>>> shutil.copy('original.txt', 'duplicate.txt')
'/home/username/duplicate.txt'
>>> shutil.copy('original.txt', 'my_folder/duplicate.txt')
'/home/username/my_folder/duplicate.txt'

バイナリファイルのコピー

上記とまったく同じ手順で、バイナリファイルもそのままコピーできます。テキストファイルとバイナリファイルで処理を分ける必要はありません。画像・動画・実行ファイルなども、shutil.copy() にパスを渡すだけで正しく複製されます。

補足:メタデータごとコピーしたい場合

作成日時や更新日時などのメタデータも一緒に保持したい場合は、代わりに shutil.copy2() を使うとよいでしょう。使い方は shutil.copy() と同一ですが、メタデータまで忠実にコピーしてくれる点が異なります。

  1. Pythonで文字列をバイナリ(2進数)に変換する方法をわかりやすく解説

    Pythonで文字列をバイナリに変換する基本の考え方Pythonで文字列をバイナリ(2進数)表現に変換するには、文字列内の各文字を1つずつ取り出し、それぞれを2進数へ変換したうえで、結果をひとつの文字列として連結します。各文字の文字コードは ord() 関数で取得でき、format() 関数に「b」フォーマット指定子を渡すことで、簡単に2進数形式へ整形できます。format() と ord() を使った変換方法最もシンプルなのが、format(ord(x), b) を使って各文字 x を2進数の文字列に変換する方法です。次の例では、文字列 hello world の各文字をスペース区切りのバイ

  2. Pythonでテキストファイルの重複行を削除する方法

    Pythonでは、ファイル操作の機能を使うことで、テキストファイルや関数内に含まれる重複した行を簡単に削除できます。ここでは、例として「bar.txt」というテキストファイルを使用し、重複行を取り除いた結果を「foo.txt」という新しいファイルに保存する方法を解説します。なお、処理対象となるテキストファイルは、Pythonスクリプトと同じディレクトリ(フォルダ)に配置しておく必要があります。異なる場所にある場合は、正しく動作しないので注意してください。元データ(bar.txt)今回使用するbar.txtの内容は以下の通りです。A cow is an animal. A cow is an a