delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

Pythonでテキストファイルの読み込み・書き込みを1行で行う(pathlibを使う方法)

以下のようにpathlibを使うと、Pythonでも1行でテキストファイルの読み込み・書き込みを行うことができることを知った。

  • 読み込み
from pathlib import Path
text = Path("/path/to/fizz.txt").read_text(encoding="utf-8")
  • 書き込み
from pathlib import Path
Path("/path/to/buzz.txt").write_text("hoge", encoding="utf-8")

引数の種類・意味もopenと同じとのことである。

また、

ファイルを開いた後に閉じます。

とのことなので、withブロックで囲ったり、ファイルハンドラーをクローズしたりする作業も不要と理解した。 

  • 公式ドキュメント

pathlib --- オブジェクト指向のファイルシステムパス — Python 3.9.4 ドキュメント

背景

PHPではfile_get_contentsfile_put_contentsという関数を使って一行でファイルの読み込み・書き込みができたので、ちょっとしたスクリプトでファイルを扱うときに便利だった。

PHP: file_get_contents - Manual
PHP: file_put_contents - Manual

Pythonでファイルの読み込み・書き込みを行うときは、これまではwithブロックでopenを使う方法しか知らなかったので、1行で書く方法はないのかな?とずっと思っていた。

pathlibを使うと1行で書けることを知った。