LEVEL 6 ・ ファイル / Lesson 11
テキストファイルを読む・書く
ファイルを開いて、中身を読み、書き込む。Pythonの「ファイルの扱い方」の基本です。
このレッスンが終わったら
「with open(...) でファイルを開き、読んだり書いたりできる。w は上書きなので注意する」と言える。
できることを見る
メモ帳で作ったテキストファイルの中身を、Pythonに読んでもらいましょう。
ここに、members.txt というファイルがあります。部署のメンバーの名前が、1行に1人ずつ書かれています。
田中 佐藤 鈴木
Pythonでは、このファイルを次のように読みます。
with open("members.txt", encoding="utf-8") as f:
text = f.read()
print(text)動かしてみる
この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。
▶ 実行を押すと、ここに結果が出ます
田中・佐藤・鈴木と、3人の名前が表示されましたか。ファイルの中身が、そのままPythonに入ってきました。
1行ずつ読む
openファイルを開く"members.txt"開きたいファイルの名前encoding="utf-8"文字コード(日本語の読み方)with open("members.txt", encoding="utf-8") as f:members.txt を開いて、「f」と呼ぶ。(字下げの中で使い終わったら、自動で閉じる) text = f.read()「f」の中身を全部読んで、「text」という名前で覚えるprint(text)textを表示する日本語にすると
with を使うと、ファイルを閉じ忘れる心配がありません。ファイルを開いたままにすると、ほかのソフトで開けなくなることがあるため、いつも with を使うのが決まりです。
1か所だけ変える
① 1行ずつ読む。 f.read() の代わりに、for で1行ずつ取り出してみましょう。LEVEL 3 の繰り返しの考え方と同じです。
この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。
▶ 実行を押すと、ここに結果が出ます
line.strip() は、行の最後にある改行を取り除きます。.strip() を消して実行すると、行と行の間に空行が入ることを確かめてみましょう。ファイルの各行の最後には、見えない改行が付いているためです。
② ファイルに書く。 書き込むときは、open の2つ目に "w"(write = 書く)を指定します。
▶ 実行を押すと、ここに結果が出ます
\n は「改行」を表す記号です。write は、書いた文字をそのまま入れるので、改行したいときは自分で \n を付けます。
③ ファイルが無いとき。 存在しないファイルを開こうとすると、どうなるでしょう。
この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。
▶ 実行を押すと、ここに結果が出ます
FileNotFoundError は、「そのファイルがありません」という意味でしたね(エラー講座)。名前の綴り(members.txt と member.txt)を見比べてみてください。
自分で書く
お題① members.txt を読んで、1人ずつ「〇〇さん」と表示してください。
この欄では、サンプルファイルが使えます。実行のたびに、ファイルは最初の状態に戻ります。
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
with open(...) as f: のあと、for line in f: で1行ずつ取り出し、print(line.strip() + "さん") と書きます。
答えの例を見る
with open("members.txt", encoding="utf-8") as f:
for line in f:
print(line.strip() + "さん")お題② greeting.txt というファイルに「こんにちは」と書き込み、そのファイルを読み戻して表示してください。
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
先に open("greeting.txt", "w", encoding="utf-8") で書き、次にもう一度 open("greeting.txt", encoding="utf-8") で読みます。
答えの例を見る
with open("greeting.txt", "w", encoding="utf-8") as f:
f.write("こんにちは")
with open("greeting.txt", encoding="utf-8") as f:
print(f.read())