ここでは、Pythonにおける「txt」データの読み込み・書き込み操作方法について解説しています。
この記事の対象
読み込み方法
「txt」データを読み込みにはopen()メソッドを用います。このとき、開きたいファイルの文字エンコーディングを指定する必要があるので注意が必要です。
「txt」データの読み込み
以下のプログラムは予め「fib.txt」ファイルを生成しておき、そのファイルの中に書かれている数列を読み込んで、表示させている内容となっています。

open_file = open("fib.txt",encoding = "utf-8")#1---encodingの指定に注意
out_file = open_file.read()
open_file.close()
print("以下はフィボナッチ数です。\n",out_file)
1の部分でエンコーディングを指定していることに注意して下さい。余談ですが、「Shift_JIS」を指定したい場合は「open(*****,encoding=”sjis”)」とします。
読み込んだファイルを「out_file」に入れて、出力させています。
結果
#1
#1
#2
#3
#5
#8
#13
#21
#34
#55
#89
#144
#233
#377
#610
#987
#1597
#2584
#4181
書き込み方法
「txt」データの書き込みを行う場合は、open()メソッド内で「モード」を指定する必要があります。モードには書き込みモード(w)、読み込みモード(r)などがあります。
「txt」データの書き込み
以下のプログラムは数列を生成して、「num.txt」として書き込む内容となっています。
open_file = open("num.txt",mode = "w",encoding = "utf-8")
for i in range(1,21):
open_file.write(str(i)+"\n")
open_file.close()
open()メソッドで「num.txt」を開き、1~20の数字を書き込んでいます。
読み込みと違う点は、「mode=”w”」とopen()メソッド内に書いている点です。これを書くことでファイルに文字を書き込むことができます。
結果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
既存ファイルに追記
既存のテキストファイル num.txt に、1から5までの数字を追記する内容となっています。
open_file = open("num.txt",mode = "a",encoding = "utf-8")
for i in range(1, 6):
open_file.write( "\n" + str('Add---') + str(i))
open_file.close()
「mode=”a”」追記モードでファイルを開きます。ファイルの内容は保持され、末尾に追加書き込みしています。
結果
~~~
#987
#1597
#2584
#418121
Add---1
Add---2
Add---3
Add---4
Add---5
with文を使ったファイル操作
ファイルを開く際はwith文を使うことがおすすめです。これによりファイルを開いた後、処理が終わると自動的に閉じられます。ファイルを閉じ忘れてリソースリークを防止することができます。
【with文】既存ファイルに追記
with文で任意の文字を追記する例です。
with open("num.txt", mode="a", encoding="utf-8") as f:
f.write("\n追加の文字列です。\n")
結果
~~~
#987
#1597
#2584
#4181
追加の文字列です。
【with文】複数行を一括で追記する方法
複数の行をまとめて追記したい場合は、writelines()メソッドが使えます。改行文字を各行に含める必要があります。
lines = ["1行目\n", "2行目\n", "3行目\n"]
with open("num.txt", 'a', encoding='utf-8') as f:
f.writelines(lines)
結果
~~~
#987
#1597
#2584
#4181
1行目
2行目
3行目
open()メソッドのmode一覧
mode種類 | 内容 |
w | 書き込みモードで開く |
r | 読み込みモードで開く(宣言が無い場合のデフォルト) |
a | 書き込みモードで開き、ファイルがあれば末尾に書き込み |
b | バイナリモード ex.)”wb”などとして使用 |
t | テキストモード(宣言が無い場合のデフォルト) |
その他、txtファイル操作の使用例
項目 | 内容 |
zipファイル内の「txt」データの読込方法 | Pythonにおけるzipファイル内の「txt」データを解凍せずに中身だけ読込む方法について解説しています。 |
txtファイルから任意の文字列を探索する方法 | 「txt」データから任意の文字列を探索する方法について解説しています。 |