
Pythonでファイルを開いたり、書き込んだりする方法が知りたい。
こんな疑問にお答えします!
本記事の信頼性
本記事を執筆しているのはエンジニア歴10年の現役エンジニアです。初学者の方の指導歴もあるので学習のポイントを考慮して丁寧な記事を心がけております。
Pythonでファイルを操作できると便利なこと
プログラムの計算結果を保存したり、テキストに保存されている情報を読み取ったりすることは情報処理の基礎操作となります!この機会にざっくり覚えておきましょう!
環境構築
Pythonが必要なので以下を参考にしてください。
withによるファイル読み込み・書き込み
大前提として、ファイルは開いたら必ず閉じる必要があります。ファイルを開いたままにすると、メモ帳で開けなくなる可能性があります。
withを使用するとファイルの閉じ忘れがなくなるので便利です。 ファイル操作はwith で括るようにしましょう。
with open("file_path") as fp:
print(type(fp))
encodingによる文字コード指定
テキストファイルを読み込む際と、テキストファイルを書き込む際には文字コードというものを指定する必要があります。Pythonは複数の文字コードをサポートしていますが初心者の方はutg8を指定しておけばOKです。
open()のパラメータに encoding=”utf8″を指定します。
with open("file_path", encoding="utf8") as fp:
print(type(fp))
テキストファイルを読み込む
ファイル全体の一括読み込み
read()を使用するとテキストファイルを一括で読み込むことができます。
with open("test.html", encoding="utf8") as fp:
html_str = fp.read()
print(html_str)
ファイル全体を一行ずつ読み込み
fp を for 文で回すとファイルの先頭から一行ずつの文字列として取得できます。
with open("test.html", encoding="utf8") as fp:
for read_line in fp:
print(read_line)
テキストファイルに書き込む
上書きモード(w)
open() の2つめのパラメータに“w”を指定すると書き込みモードでファイルを作成します。書き込みモードはファイルが存在しない場合は新規作成、ファイルが存在する場合は上書き(既存ファイルの破棄)となります。
with open("test2.html", "w", encoding="UTF-8") as fp:
fp.write("testです。")
追記モード(a)
上記の通り、 “w” はファイルが存在する場合は既存ファイルを破棄して、新規にファイルを作成するため、使い勝手が良くないという印象があります。
実際の用途では、既存のファイルに追記したい場合がほとんどですので、その場合は“a” を使用します。
with open("test2.html", "a", encoding="utf8") as fp:
fp.write("追記testです。")