Pythonで複数のファイルを1つの新しいファイルに結合する方法
Pythonで複数のファイルを新しいファイルにマージ(結合)するのはとても簡単です。ループ処理を使って各ファイルを読み込み、その内容を出力用のファイルに書き込むだけで実現できます。
基本的な結合方法
最もシンプルな方法は、ファイル全体を一度に読み込んで書き込むやり方です。小〜中規模のテキストファイルであれば、この方法で十分です。
コード例
filenames = ['file1.txt', 'file2.txt', 'file3.txt']
with open('output_file', 'w') as outfile:
for fname in filenames:
with open(fname) as infile:
outfile.write(infile.read())
コードの解説
このコードでは、まず出力先となる output_file を書き込みモード('w')で開きます。次に、ファイル名が格納されたリスト filenames をループし、各ファイルを順番に読み込んでは出力ファイルへ書き込んでいます。すべての操作を with 文で囲むことで、処理終了後にファイルが自動的に閉じられるため、リソース管理も安全です。
非常に大きいファイルを扱う場合
ファイルサイズが非常に大きい場合、read() でファイル全体を一度にメモリへ読み込むとメモリを圧迫する可能性があります。そのようなときは、行ごとに読み書きする方法がおすすめです。
コード例
filenames = ['file1.txt', 'file2.txt', 'file3.txt']
with open('output_file', 'w') as outfile:
for fname in filenames:
with open(fname) as infile:
for line in infile:
outfile.write(line)
覚えておきたいポイント
- 書き込みモード
'w'で開くと既存の内容は上書きされます。既存ファイルに追記したい場合は'a'モードを使用してください。 - 画像などのバイナリファイルを結合する場合は、
'rb'・'wb'のようにバイナリモードを指定します。 - 行単位での処理はメモリ使用量を大幅に抑えられるため、巨大なログファイルやCSVファイルの結合に特に有効です。
-
PythonでPDFファイルをExcelファイルに変換する方法を解説
Pythonには、さまざまな処理に対応できる豊富なライブラリが用意されています。本記事では、その中でもPDFファイルをExcelファイルに変換する方法について詳しく解説します。PythonでPDFをCSV形式に変換できるパッケージは複数存在しますが、ここではTabula-pyモジュールを使用します。Tabula-pyの主要部分はJavaで書かれており、PDFドキュメントを読み込み、PythonのDataFrameとして取得したり、JSONオブジェクトに変換したりすることができます。事前準備:JavaのインストールTabula-pyを使用する前に、システムにJavaが事前にインストールされている
-
Pythonで複数のファイル名を一括変更する方法【os.rename()活用】
Python3では、rename()メソッドを使うことで、ファイルやディレクトリの名前を簡単に変更できます。このメソッドは標準ライブラリのosモジュールに含まれており、追加のインストールなしですぐに利用可能です。 os.rename() の基本構文 os.rename(src, dst) 各引数の意味は以下のとおりです。 src: 名前を変更したい元のファイル(またはディレクトリ)のパス dst: 変更後の新しい名前を含むパス それでは、複数の画像ファイルが入ったフォルダを例に、一括でファイル名を変更する方法を見ていきましょう。ここでは、次のような画像フォルダを使用します。 入力(変更前の