Pythonでバイナリファイルのコピーとバックアップを自動化する方法

この記事では、Pythonを使用してバイナリファイルのコピーとバックアップを自動化する方法を詳しく解説します。具体的なコード例、その解説、応用例を含めています。

目次

はじめに

バイナリファイルのコピーとバックアップは、多くの業務やプロジェクトで必須のタスクです。特に大量のファイルを管理する際には、手作業でのコピーとバックアップは非効率的であり、ミスのリスクも高まります。Pythonを活用することで、このような問題を効率的かつ安全に解決できます。

基本的なコード

まずは、基本的なPythonコードを見てみましょう。

# バイナリファイルをコピーする基本的なコード
def copy_binary_file(src, dest):
    with open(src, 'rb') as infile, open(dest, 'wb') as outfile:
        outfile.write(infile.read())

# 使用例
copy_binary_file('source_file.bin', 'destination_file.bin')

コードの解説

このコードは非常にシンプルですが、バイナリファイルのコピーに必要な基本的な要素が全て含まれています。

– `open(src, ‘rb’)`: ソースファイルをバイナリモードで読み込む
– `open(dest, ‘wb’)`: デスティネーションファイルをバイナリモードで書き込む
– `outfile.write(infile.read())`: ソースファイルから読み取ったデータをデスティネーションファイルに書き込む

応用例

基本的なコードが理解できたところで、いくつかの応用例を考えてみましょう。

応用例1: 複数のファイルを一括でコピー

# 複数のバイナリファイルを一括でコピーする
def batch_copy(files_map):
    for src, dest in files_map.items():
        copy_binary_file(src, dest)

# 使用例
batch_copy({
    'source1.bin': 'dest1.bin',
    'source2.bin': 'dest2.bin',
    'source3.bin': 'dest3.bin'
})

応用例2: バックアップを作成

# バックアップを作成する
import datetime

def create_backup(src):
    timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
    backup_filename = f"{src}_{timestamp}.backup"
    copy_binary_file(src, backup_filename)

# 使用例
create_backup('source_file.bin')

応用例3: ファイルの存在確認とエラーハンドリング

# ファイルの存在確認とエラーハンドリングを追加
import os

def copy_binary_file_with_check(src, dest):
    if not os.path.exists(src):
        print(f"{src} does not exist.")
        return
    try:
        copy_binary_file(src, dest)
    except Exception as e:
        print(f"Failed to copy {src} to {dest}. Error: {e}")

# 使用例
copy_binary_file_with_check('non_existent_file.bin', 'destination_file.bin')

まとめ

Pythonを使ってバイナリファイルのコピーとバックアップを自動化する方法を学びました。基本的なコードから、複数のファイルを一括で処理する方法、バックアップを作成する方法、エラーハンドリングまで、実用的なテクニックを網羅しています。

コメント

コメントする

目次