Pythonでテキストファイルを読み書きする方法|open関数とアクセスモードの使い方を徹底解説
このチュートリアルでは、Pythonにおけるファイル操作(ファイルハンドリング)の基本について学びます。Pythonでは、組み込み関数を使うだけで、ファイルを簡単に編集・操作できるのが魅力です。
Pythonで扱えるファイルは2種類
Pythonで編集できるファイルには、主に次の2種類があります。それぞれの特徴を見ていきましょう。
テキストファイル
テキストファイルとは、英字などの文字データが含まれた一般的なファイルです。ファイル内に記録されている内容を「テキスト」と呼びます。
バイナリファイル
バイナリファイルは、0と1のデータで構成されるファイルです。そのままでは人間が理解できない形式になっています。
ファイルアクセスモードの一覧
Pythonでファイルを扱う際は、必ずファイルへのアクセスモードを指定する必要があります。たとえば、書き込み目的でファイルを開くなら「書き込みモード」を選択します。代表的なモードは以下の通りです。
読み取り専用:「r」
このモードでは、ファイルの内容を読み取ることのみ可能です。ファイルが存在しない場合はエラーが発生します。
読み書き両用:「r+」
このモードでは、ファイルの内容を読むことも、データを書き込むこともできます。ファイルが存在しない場合はエラーになります。
書き込み専用:「w」
このモードでは、ファイルに内容を書き込めます。既存のデータは上書きされる点に注意してください。ファイルが存在しない場合は、自動的に新規作成されます。
追記専用:「a」
このモードでは、ファイルの末尾にデータを追加できます。ファイルが存在しない場合は新規作成されます。
追記・書き込み:「a+」
このモードでは、データの追記と書き込みの両方が可能です。ファイルが存在しない場合は新規作成されます。
ファイルへの書き込み方法
それでは、実際にファイルへデータを書き込む手順を見ていきましょう。
- open() 関数で w モードを指定してファイルを開く(読み書き両方行いたい場合は r+ モードを使用)
- write() または writelines() メソッドでデータを書き込む
- ファイルを閉じる
以下のコードでこれらの手順を実現できます。
サンプルコード
# 'w'モードでファイルを開く
file = open('sample.txt', 'w')
# write() - ファイルに直接テキストを書き込む
# writelines() - 複数行や文字列を一度に書き込む(イテレータを引数に取る)
# write()メソッドでデータを書き込む
file.write("I am a Python programmer.\nI am happy.")
# ファイルを閉じる
file.close()
プログラムと同じディレクトリに sample.txt というファイルが作成されているので、中身を確認してみてください。
ファイルからの読み込み方法
書き込みの方法がわかったところで、次は書き込んだデータを読み出す手順を確認しましょう。
- open() 関数で r モードを指定してファイルを開く(読み書き両方行いたい場合は r+ モードを使用)
- read() / readline() / readlines() メソッドでデータを読み込み、変数に格納する
- データを表示する
- ファイルを閉じる
以下のコードでこれらの手順を実現できます。
サンプルコード
# 'r'モードでファイルを開く
file = open('sample.txt', 'r')
# read() - ファイルの全内容を読み込む
# readline() - 指定した行数だけ読み込む(引数に行数を指定)
# readlines() - 全行を読み込み、リストとして返す
# read()メソッドでデータを読み込む
data = file.read()
# データを表示
print(data)
# ファイルを閉じる
file.close()
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
I am a Python programmer. I am happy.
補足:with文を使ったより安全な書き方
実務では、with 文を使ってファイルを開くことが推奨されています。with 文を使えば、処理終了後にファイルが自動的にクローズされるため、閉じ忘れによるトラブルを防げます。
with open('sample.txt', 'r') as file:
data = file.read()
print(data)
まとめ
今回は、Pythonにおけるファイルの読み書きの基本について解説しました。open() 関数と各アクセスモード(r / r+ / w / a / a+)の違いを理解すれば、テキストファイルの操作は自由自在です。ぜひご自身の環境でもコードを動かして試してみてください。ご不明な点があれば、コメント欄でお気軽に質問してください。
-
Pythonでテキストファイルを読み込む方法を徹底解説!read()・readline()・readlines()の違いと使い分け
テキストファイルとは、単純な文字情報のみで構成されたファイルのことです。Pythonには、テキストファイルを読み書きするための組み込み関数が標準で用意されており、追加のライブラリをインストールすることなく手軽にファイル操作が行えます。この記事では、Pythonでテキストファイルを読み込む3つの方法について、具体的なコード例とともに詳しく解説します。テキストファイルを読み込む3つの方法Pythonでテキストファイルを読み込む際に使える主なメソッドは以下の3つです。read() — ファイル全体を一度に読み込み、すべての内容を1つの文字列として返します。readline() — ファイルから1行だ
-
PythonのopenpyxlでExcelファイルを読み書きする方法を徹底解説
はじめにopenpyxlは、Excel 2010形式のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。Office Open XML形式をPythonからネイティブに扱えるライブラリが存在しなかったことから、その不足を補うために誕生しました。業務などで使用するExcelファイルは「ワークブック(Workbook)」と呼ばれ、最低1枚、最大で数十枚のシートを含むことができます。各シートは、行が1から始まり、列がAから始まる構成になっています。openpyxlライブラリを使えば、シートの追加やデータの入力はもちろん、データの操作や削除まで、さまざま