【Python】テキストファイルを読み込んだり書き込む方法

 

こんにちは。のっくん(@yamagablog)です。

 

今日はPythonでファイルを読み書きする方法を解説します。

 

「Pythonでファイルに文字を保存したい」

「Pythonで文字列を読み込みたい」

 

そんな方に読んでいただければと思います。

 

[toc]

 

ファイルを読む

 

適当なテキストファイルを作って読み込んでみます。

 

open_file = open('point.txt')
raw_data = open_file.read()
open_file.close()
print(raw_data)

 

出力は以下の通り。

 

Nobuo Yamada,100,20,29
Keisuke Honda,80,89,20
Yu Uchida,23,67,43

 

close()を書くのが面倒って場合は以下のように書けます。

 

with open('point.txt') as open_file:
    raw_data = open_file.read()
#インデントから抜けるとファイルを自動的に閉じる
print(raw_data)

 

ファイルに書く

 

書くときは、writeを使います。

 

write_file = open('output.txt', 'w')
write_file.write('Hello_World\n')
write_file.write('Hello_Python!\n')
write_file.close()

 

closeするまで何度もwriteが呼び出せます。「\n」は改行を意味します。

 

Tips
Macの日本語配列キーボードの場合バックスラッシュを入力するには、「option+¥」です

 

ファイルを読むときと同様に以下のようにも書けます。

 

with open('output.txt', 'w') as write_file:
    write_file.write('Hello_World\n')
    write_file.write('Hello_Python!\n')

 

読んだデータを辞書に保存する

 

さて、少し応用してみましょう。

 

以下のデータを読んで辞書に保存します。

 

Takeo Suzuki:100,29,30
Masaki Ueda:32,45,67
Yoshito Okubo:34,56,78

 

[speech_bubble type=”ln” subtype=”L1″ icon=”ilust/shinpai_man.png” name=”男の子”]データを辞書に保存するってどうやるんだろう。
[/speech_bubble] [speech_bubble type=”ln” subtype=”L1″ icon=”profile_face.png” name=”のっくん”]まず、データを行ごとに分割してみよう。splitlinesを使うよ!
[/speech_bubble]

 

with open('point2.txt') as open_file:
    raw = open_file.read()

# 各行のリストを作る
point = raw.splitlines()
print(point)

 

['Takeo Suzuki:100,29,30', 'Masaki Ueda:32,45,67', 'Yoshito Okubo:34,56,78']

 

[speech_bubble type=”ln” subtype=”L1″ icon=”profile_face.png” name=”のっくん”]うまく行ごとに分割できたみたいだね。次は名前と点数の部分を分割してみよう。splitを使うよ。
[/speech_bubble]

 

#読み込んだデータを辞書に追加する
p_dict = {}
for line in point:
    name,points_str = line.split(':')
    p_dict[name] = points_str

print(p_dict)

 

{'Takeo Suzuki': '100,29,30', 'Masaki Ueda': '32,45,67', 'Yoshito Okubo': '34,56,78'}

 

[speech_bubble type=”ln” subtype=”L1″ icon=”ilust/necchusyou_face_boy1.png” name=”男の子”]辞書として保存できたみたい![/speech_bubble]

 

まとめ

 

今日のまとめ
・データを読むときはread,書くときはwriteを使おう
・ファイルを閉じるときはwithを使うと便利
・データを分割するときはsplitlines,splitを使おう

 

参考

 

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog