Pythonファイル操作マスター:テキストファイルの作成、読み書き、オープン
Pythonファイル操作マスター:テキストファイルの作成、読み書き、オープン
Pythonではファイルの読み書きに外部ライブラリは不要です。ファイルの作成、書き込み、読み込みのための組み込み関数が用意されています。
このファイル操作チュートリアルで学べること:
- Pythonでテキストファイルを開く方法
- Pythonでテキストファイルを作成する方法
- Pythonでテキストファイルに追記する方法
- Pythonでファイルを読む方法
- Pythonでファイルを行ごとに読む方法
- Pythonのファイルモード
Pythonでテキストファイルを開く方法
ファイルを開くには組み込みのopen関数を使用します。Pythonのファイル オープン関数は、ファイル操作のためのメソッドと属性を含むファイルオブジェクトを返します。
Pythonファイル オープン関数の構文:
file_object = open("filename", "mode")
ここで、
- filename: ファイルオブジェクトが開いたファイルの名前
- mode: ファイルオブジェクトの属性で、どのモードでファイルが開かれたかを示す
これらのモードの詳細は後述します。
Pythonでテキストファイルを作成する方法
Pythonでのファイル書き込みで、以下のコードで.txtファイル(guru99.txt)を作成できます:
ステップ1) .txtファイルを開く
f = open("guru99.txt", "w+")
- 変数「f」でguru99.txtというファイルを開く。openは2つの引数を取る:開きたいファイルと、そのファイルで行いたい操作・権限を表す文字列
- 引数に「w」を使用し、Pythonでのファイル書き込みを指定。ライブラリに存在しない場合はファイルを作成
- プラス記号はPythonファイル作成操作で読み書き両方を示す
ステップ2) ファイルにデータを書き込む
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
- 10個の数値の範囲でforループを実行
- write関数でファイルにデータを書き込み
- 出力したい内容は「this is line number」で、Python書き込み関数で宣言し、%d(整数表示)を使用
- 基本的に書き込んでいる行番号を挿入し、キャリッジリターンと改行文字を追加
ステップ3) ファイル インスタンスを閉じる
f.close()
- guru99.txtとして保存されたファイル インスタンスを閉じる
テキストファイル作成のコード実行結果:
Pythonでテキストファイルを作成する方法
テキストファイル(今回は「guru99.txt」)をクリックすると、以下のようになります:
Pythonでテキストファイルを作成する例
Pythonでテキストファイルに追記する方法
既存ファイルまたは新規ファイルに新しいテキストを追加/追記できます。
ステップ1)
f = open("guru99.txt", "a+")
プラス記号はファイルが存在しない場合は新規作成を示します。今回は既にファイルがあるため、Python追記操作で新規作成は不要です。
ステップ2)
for i in range(2):
f.write("Appended line %d\r\n" % (i+1))
これにより追記モードでファイルにデータが書き込まれます。
Pythonでテキストファイルに追記する方法
「guru99.txt」ファイルで出力を確認できます。コードの出力は、既存ファイルがPython追記操作で新しいデータで追記されたことを示します。
Pythonでテキストファイルに追記する例
Pythonでファイルを読む方法
「読み取りモード」(r)で.txtファイルを呼び出してファイルを読み取ります。
ステップ1) 読み取りモードでファイルを開く
f = open("guru99.txt", "r")
ステップ2) mode関数でファイルがオープンモードか確認。Yesなら先に進む
if f.mode == 'r':
ステップ3) f.readでファイルデータを読み取り、変数contentsに格納
contents = f.read()
ステップ4) contentsを出力してPythonでテキストファイル読み取り
ファイル読み取りPython例の出力:
Pythonでファイルを読む方法
Pythonでファイルを行ごとに読む方法
データが大きすぎて読めない場合、.txtファイルを行ごとに読むことも可能です。readlines()でデータを読みやすく分離します。
Pythonでファイルを行ごとに読む方法
コード(f1=f.readlines())を実行してファイルを行ごとに読むと、各行が分離され読みやすい形式で提示されます。今回は行が短く読みやすいため、出力は読み取りモードと似ています。しかし読みにくい複雑なデータファイルの場合、このコードが有用です。
Pythonのファイルモード
以下はPythonの各種ファイルモードです:
| モード | 説明 |
|---|---|
| 'r' | デフォルトモード。読み取り用にファイルを開く。 |
| 'w' | 書き込み用にファイルを開く。ファイルが存在しない場合は新規作成。存在する場合はファイルを切り詰める。 |
| 'x' | 新規ファイルを作成。ファイルが既に存在する場合は失敗。 |
| 'a' | 追記モードでファイルを開く。ファイルが存在しない場合は新規作成。 |
| 't' | デフォルトモード。テキストモードで開く。 |
| 'b' | バイナリモードで開く。 |
| '+' | 読み書き(更新)用にファイルを開く |
Python print() to File 例の完全なコード:
Python 2 例
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# ファイルを再オープンして内容を読み取り
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print contents
# または、readlinesで各行をリストに読み込み
# fl = f.readlines()
# for x in fl:
# print x
if __name__ == "__main__":
main()
Python 3 例
別のPython print() to File 例:
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# ファイルを再オープンして内容を読み取り
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print(contents)
# または、readlinesで各行をリストに読み込み
# fl = f.readlines()
# for x in fl:
# print(x)
if __name__ == "__main__":
main()
まとめ
- Pythonでファイルの読み取り、書き込み、削除が可能
- Pythonテキストファイル作成には
open("filename","w+")を使用。+はPythonインタプリタに読み書き権限でテキストファイルを開くことを指示 - 既存ファイルへのデータ追加やPython print to file操作には
open("Filename", "a")を使用 - ファイルの全内容を読むにはPythonファイル読み取り関数を使用
- ファイル内容を1行ずつ読むにはreadlines関数を使用
Python
- C言語 ファイル入出力: fopen, fprintf, fread, fseek をマスターする
- VHDLのTEXTIOライブラリでテキスト・ファイルからFPGAブロックRAMを初期化する
- Python入門: インストール・実行・最初のプログラム作成
- PythonファイルI/O:ファイル操作、読み書き、管理のマスター
- Python print()関数の実践ガイド:基本から応用まで
- Pythonでファイル・ディレクトリの存在確認:実践ガイド
- Python JSON:エンコード、デコード、ファイル処理の実践ガイド
- Pythonで平均を計算する:実践ガイド
- PythonファイルI/O:入出力操作をマスターする
- Python例外処理をマスター:包括的ガイド
- Java BufferedReader でファイル読み込み:実践ガイドと例