📁
【Python】ファイルの作成・追記・読込
本書について
本書では、Pytonのopen関数
を用いて、テキストファイルの操作(作成・追記・読込)を実施する方法を紹介します。
ファイルの作成・追記
# 作成
f = open('write_test.txt', 'w')
f.write('1行目\n')
f.close()
# 追記
f = open('write_test.txt', 'a')
f.write('2行目\n')
f.close()
基本的なモードは以下の通り。
モード | 説明 |
---|---|
r | 読み込みモードで開きます。 |
r+ | 読み書きモードで開きます。(書き込みは追記) |
w | 書き込みモードで開きます。(既に指定するファイルが存在する場合は、上書きします。) |
w+ | 読み書きモードで開きます。(書き込みは上書き) |
a | 書き込みモードで開きます。(既に指定するファイルが存在する場合は、追記します。) |
a+ | 読み書きモードで開きます。(書き込みは追記)※うまく読み込みができない |
x | 新規ファイルとして書き込みモードで開きます。(既に指定するファイルが存在する場合はエラーとなります。) |
b | バイナリモードで開きます。 |
Withステートメントを使った記述方法
with
ステートメントを使うと、close()
の記載が不要になります。
コードの削減・可読性の向上・ファイルの閉じ忘れ防止など、メリットが多いので利用することをお勧めします。
with open('test.txt', 'w') as f:
f.write('write with statements')
ファイルの読み込み
# 書込
with open('read.txt', 'w') as f:
f.write('read line 1\n')
f.write('read line 2\n')
f.write('read line 3\n')
# 読込(全行)
with open('read.txt', 'r') as f:
print(f.read())
# 読込(1行)
with open('read.txt', 'r') as f:
while True:
line = f.readline()
print(line, end='')
if not line:
break
ファイルの作成・読込(同時)
以下の方法で、ファイルの書き込みと読み込みを同じwith
ステートメント内で実現することができます。
*seek
はカーソルを移動するメソッドです。(write
で書き込むと、カーソルが最終行に位置するため、seek
にて適正します。)
s = """\
line1
line2
line3
"""
# 書込・読込
with open('test.txt', 'w+') as f:
f.write(s)
f.seek(0)
print(f.read())
Discussion