Python テキストファイルの読み込みと書き込み

Pythonのテキストファイルの書き込みと読み込みのサンプルです。(確認環境:Python 3)

目次

サンプル 読み込むファイル
  テキストファイルを読み込む
  複数行を読み込みリストを返す(readlines)
  1行読み込み文字列を返す(readline)
  読み込む文字数を指定する(read)
  テキストファイルに書き込む(write)
  open関数の2つめの引数の処理のモード

読み込むファイル

以下のファイル(test1.txt)を読み込みます。

あいうえお
かきくけこ
さしすせそ

テキストファイルを読み込む

open(パス/ファイル名, 'r', encoding=文字コード)

2つめの引数のrが読み込みを表します。

# coding: utf-8

path1 = "D:\\test1\\test1.txt"

file1 = open(path1, 'r', encoding='utf-8')

for line in file1:
    print(line)  # あいうえお かきくけこ さしすせそ

file1.close()

3行目は、ファイルのパスです。
5行目は、open関数でファイルを開いています。2つめの引数はr(read)です。3つめの引数でutf-8を指定しています。shift-jisを指定する場合は、encoding='shift_jis'にします。省略した場合は、デフォルトでUTF-8になります。
7行目は、for文でループ処理を行います。
8行目は1行ごとに表示されます。
10行目は、ファイルを閉じています。

複数行を読み込みリストを返す(readlines)

readlinesで末尾にsがつきます。

# coding: utf-8

path1 = "D:\\test1\\test1.txt"

file1 = open(path1,'r',encoding='utf-8')

f1 = file1.readlines()

file1.close()

print (f1) #['あいうえお\n', 'かきくけこ\n', 'さしすせそ\n']

7行目は、readlinesメソッドは、複数行読み込みます。
11行目は、リストが表示されます。

1行読み込み文字列を返す(readline)

readlineで末尾にsはつきません。

# coding: utf-8

path1 = "D:\\test1\\test1.txt"

file1 = open(path1,'r',encoding='utf-8')

f1 = file1.readline()
f2 = file1.readline()
f3 = file1.readline()

file1.close()

print (f1) # あいうえお
print (f2) # かきくけこ
print (f3) # さしすせそ

7行目は、readlineメソッドは、1行読み込みます。
11行目は、1行目の文字列が表示されます。

読み込む文字数を指定する(read)

# coding: utf-8

path1 = "D:\\test1\\test1.txt"

file1 = open(path1,'r',encoding='utf-8')

f1 = file1.read(7)

for line in f1:
	print (line) #あ い う え お か

file1.close()

7行目readメソッドに引数の数値をつけ読み込む文字数を指定しています。
10行目は、文字は6文字のみ表示されています。改行も1文字とされるためです。

テキストファイルに書き込む(write)

open(パス/ファイル名, 'w', encoding=文字コード)

2つめの引数のwが書き込みを表します。

# coding: utf-8

path1 = "D:\\test1\\test2.txt"

file1 = open(path1,'w',encoding='utf-8')

file1.write("赤\n")
file1.write("黄\n")
file1.write("青\n")

file1.close()

3行目は、ファイルのパスです。
5行目は、open関数でファイルを開いています。2つめの引数はw(write)です。3つめの引数でutf-8を指定しています。shift-jisを指定する場合は、encoding='shift_jis'にします。省略した場合は、デフォルトでUTF-8になります。
7行目は、write関数で書き込みを行います。\nは改行です。
11行目は、ファイルを閉じています。

open関数の2つめの引数の処理のモード

open(filename, mode,文字コード)
  • 1つめの引数は、ファイル名を指定します。
  • 2つめの引数は、モードです。
  • file object を返します。
モード
文字 説明
r 読み込みます
w 新規で書き込みます
a 追記で書き込みます
r+ 追記の書き込みと読み込みができます
ファイルが存在しない場合はエラーになります
w+ 新規の書き込みと読み込みができます
ファイルがない場合作成します
a+ 追記の書き込みと読み込みができます
ファイルがない場合作成します
b バイナリーモードで開きます

以下はPythonの公式ドキュメントのファイルを読み書きするのリンクです。
https://docs.python.org/ja/3/tutorial/inputoutput.html#reading-and-writing-files

関連の記事

Python リストの仕組みと使い方のサンプル(list)

△上に戻る