Python: 複数のファイルを結合して1つのファイルにする

Pythonを使って複数のファイルを1つのファイルにまとめる方法を紹介します。

以下の関数(merge_files)をそのまま利用するか、またはアレンジすることで 複数のファイルを結合して1つのファイルにすることができます。

# 複数のファイルを1つのファイルにまとめる関数
def merge_files(file_names, output_file):
    """
    複数のファイルを1つのファイルにまとめる関数

    Args:
    file_names (list): 結合したいファイル名のリスト
    output_file (str): 出力ファイル名

    Returns:
    None
    """
    try:
        with open(output_file, 'w', encoding="utf-8") as outfile:
            for fname in file_names:
                with open(fname, 'r', encoding="utf-8") as infile:
                    outfile.write(infile.read())
                # ファイル間の区切りとして改行を追加する場合は以下の行のコメントを解除します
                # outfile.write('\n')
        print(f"ファイルの結合が完了しました。結果は {output_file} に保存されています。")
    except IOError as e:
        print(f"エラーが発生しました: {e}")

# 使用例
# file_list = ['a.txt', 'b.txt', 'c.txt']
# output = 'd.txt'
# merge_files(file_list, output)

この関数の特徴:

  1. 引数として複数ファイル名のリスト(file_names)とアウトプットファイル名(output_file)を受け取ります。
  2. 例外処理を含めており、ファイルの読み書き中にエラーが発生した場合にエラーメッセージを表示します。
  3. 処理が成功した場合、完了メッセージを表示します。
  4. ファイル間に区切りを入れたい場合は、コメントアウトされているoutfile.write('\n')の行を有効にできます。

使用方法:

file_list = ['a.txt', 'b.txt', 'c.txt']
output = 'd.txt'
merge_files(file_list, output)

この関数を使用することで簡単に複数のファイルを1つのファイルにまとめることができます。 また、関数化することで再利用性が高まり、 他のスクリプトやプログラムに組み込むことも容易になります。

Python