【4 weeks challenge – Python】Day 12 テキストファイルの内容を読み込み read, readline, readlines

daily_trial

こんにちは、しらすです。

12日目です。本日の習得スキルは「テキストファイルの内容を読み込み」です!

テキストファイルの内容を読み込みでできること

指定したパスにあるファイルの中身をテキスト形式で読み出し、変数に格納することができます。

使い方

#ファイル内のテキストを読み込む
with open("./000.log","r") as file:   #ファイルを開く
    result = file.read()              #ファイルの中身を読み込む

結果

No.1と記載した000.logを読み込み、resultを表示すると、以下のように無事中身を取り出すことができました。

おためし編

readline, readlines

readはファイル全体を一つの文字列として読み出しますが、各行をリスト型で格納するreadlineと、一行ずつ読み出すreadlinesもあります。場合によって使い分けましょう。

複数のファイルを読み込む

globでファイルリストの一覧を取得し、for文で各ファイルを順番に読み出していきます。

#複数のファイルを読み込む
file_list = glob.glob("./*.log")

for text_file in file_list:
    with open(text_file,"r") as file:
        result = file.read()

ファイルの中身を書き換える

複数のファイルを連続で読み出し、中身のテキストの任意の文字列を置換できます。ファイルの中身を書き換えるには、ファイルを書き込み型(“w”)で開き、writeメソッドを使用します。

※ファイルを開く際には、”w” “r”どちらかしか指定できません。read()メソッドは”r”でのみ、write()メソッドは”w”でのみ使用可能なため、読み込み時と書き込み時でそれぞれファイルのオープンが必要です。

#ファイルの中身を一括で書き換える
file_list = glob.glob("./day09_sample_forday12/*.log")

for text_file in file_list:
    with open(text_file,"r") as file:
        org = file.read()                       #ファイルの中身を読み込む
        
    with open(text_file,"w") as file:
        new = org.replace("No.", "Number.")     #書き換える文字列を指定
        file.write(new)                         #書き換える

参考

コードはこちらを参考にしました。

Pythonのread, readline, readlinesメソッドの使い方を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
初心者向けにPythonのread, readline, readlinesメソッドの使い方について解説しています。ファイルサイズが小さい場合は、readメソッドで一括に読み込んでも問題ありませんが、ファイルサイズが大きい場合はサイズ指定をしたり、readlineメソッドで少しずつ読み込むことも出来ます。

read, readline, readlinesの公式リファレンスはこちら。ファイルをオープンするときに使えるwith構文についてはこちらをご参照ください。

コメント