Pythonでテキストファイルを読み書きする方法【初心者向け解説】
テキストファイルとバイナリファイルの違い
テキストファイルとは、人間が読める文字だけで構成されたファイルのことです。その対になる存在が「バイナリファイル」で、こちらは読み取り可能な文字列として構成されていないファイル全般を指します。JPEGやGIFなどの画像ファイル、MP3などの音声ファイル、WordやPDFのようなドキュメント形式などがその代表例です。
両者の最大の違いは、バイナリファイルを正しく扱うには専用のプログラム(あるいはそのフォーマットに関する専門知識)が必要という点です。一方、テキストファイルはプレーンテキストを編集できるあらゆるソフトウェアで開けるうえ、Pythonのようなプログラミング言語でも簡単に処理できます。
ファイルを開いて内容を読み込む基本
Pythonでは、組み込み関数 open() を使ってファイルを操作します。以下のコードは、「my_file.txt」を読み込みモードで開き、内容を変数に格納した後、ファイルを閉じる基本的な流れです。
f = open('my_file.txt', 'r+')
my_file_data = f.read()
f.close()Pythonではファイルはデフォルトでテキストモードで開かれるため、そのまま直接読み書きが可能です。read() メソッドはファイル全体を一度に読み込みます。
1行ずつ読み込む方法
サイズの大きいファイルを扱う場合は、行単位で読み込むほうが効率的です。readlines() を使えば、次のようにして各行を順番に処理できます。
f = open('my_file.txt', 'r+')
for line in f.readlines():
print(line)
f.close()ファイルへの書き込み
テキストファイルには書き込みも可能です。たとえば my_file.txt の内容を上書きしたい場合は、書き込みモード("w")でファイルを開きます。
f = open("my_file.txt", "w")
f.write("My File!")
f.close()なお、"w" モードで既存のファイルを開くと元の内容はすべて消去されるため、注意が必要です。
追記モードで末尾に追加する
既存の内容を残したままデータを追加したい場合は、追記モード("a")を使用します。このモードでファイルを開くと、ファイルポインタは自動的にファイルの末尾へ移動し、以降の write() による書き込みはすべて末尾に追加されます。
f = open("my_file.txt", "a")
f.write("新しい行を追加します\n")
f.close()with文を使った安全な書き方(推奨)
実務では、close() の呼び忘れを防ぐために、ブロックを抜けると自動的にファイルを閉じてくれる with 文を使うことが推奨されています。文字化けを避けるため、encoding を明示しておくのも良い習慣です。
with open('my_file.txt', 'r', encoding='utf-8') as f:
data = f.read()
print(data)
-
PythonのBokehで画像を操作・表示する方法
Pythonの可視化ライブラリBokehで画像を扱うには、image_url()メソッドを使い、画像URLのリストを渡すのが基本です。このメソッドを使うことで、ローカルやWeb上にある画像をプロット領域内に簡単に配置できます。実装の手順output_file()でデフォルトの出力先を設定し、show()を呼び出したときに結果がHTMLファイルとして保存されるようにします。figure()でプロット用の新しいFigure(図)オブジェクトを作成します。image_url()メソッドで、指定したURLから読み込んだ画像を描画します。show()を呼び出して、Bokehオブジェクトやアプリケーション
-
PythonでPDFファイルをExcelファイルに変換する方法を解説
Pythonには、さまざまな処理に対応できる豊富なライブラリが用意されています。本記事では、その中でもPDFファイルをExcelファイルに変換する方法について詳しく解説します。PythonでPDFをCSV形式に変換できるパッケージは複数存在しますが、ここではTabula-pyモジュールを使用します。Tabula-pyの主要部分はJavaで書かれており、PDFドキュメントを読み込み、PythonのDataFrameとして取得したり、JSONオブジェクトに変換したりすることができます。事前準備:JavaのインストールTabula-pyを使用する前に、システムにJavaが事前にインストールされている