※このページではアフィリエイト広告を利用しています

【Python応用】「txt」データの読み込み・書き込み操作方法

Python

ここでは、Pythonにおける「txt」データの読み込み・書き込み操作方法について解説しています。

この記事の対象

  • 「txt」データの基本的な操作方法を知りたい方
  • 「txt」データの読み込み方法を知りたい方
  • 「txt」データへの書き込み方法を知りたい方
スポンサーリンク
スポンサーリンク

読み込み方法

「txt」データを読み込みにはopen()メソッドを用います。このとき、開きたいファイルの文字エンコーディングを指定する必要があるので注意が必要です。

「txt」データの読み込み

以下のプログラムは予め「fib.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」データから任意の文字列を探索する方法について解説しています。
タイトルとURLをコピーしました