pathlibが便利すぎてもうos.pathは使えない件Zenn須藤ナノ📂pathlibが便利すぎてもうos.pathは使えない件2023/11/06に公開2024/03/25Pythonpathlibtechはじめにこんにちは、@nano_sudoです!皆さんは、普段何も考えずにos.pathを使っていませんか?タイトルにもある通り、pathlibが便利すぎるので、今日はpathlibをマスターして、os.path地獄から脱出しましょう!pathlibとはpathlibは、ファイルパスを扱うためのライブラリです。pathlibを使うと、ファイルパスを文字列で扱うのではなく、オブジェクトとして扱うことができます。os.pathじゃだめなの?pathlibは、os.pathと比べて、次のようなメリットがあります。豊富なメソッドpathlibは、ファイルパスをオブジェクトとして扱うので、ファイルパスに対して様々な操作を行うことができます。パスの区切り文字の違いを吸収してくれるpathlibは、OSによって異なるパスの区切り文字を吸収してくれます。Windowsでは\、Linuxでは/を使いますが、pathlibを使えば、どちらのOSでも同じコードで動作させることができます。パスの結合が簡単pathlibは、/演算子を使ってパスを結合することができます。/演算子を使って/home/userと/home/user/test.txtを結合すると、/home/user/test.txtとなります。このクラスが出てきたときに混乱しないように、まずはクラスの構造を理解しておきましょう。直接インスタンス化することはできない早速使ってみるパスの生成pathlibは、Pathクラスを使ってパスを生成します。Path.cwd()パスの結合/演算子を使ってパスを結合することができます。.tar.gzパスの存在確認os.path.existsと同じように、path.existsでパスの存在確認ができます。False相対パスと絶対パスの変換Path.relative_to(<相対の基準となるパス>)で、絶対パスを相対パスに変換することができます。Path.absolute()で、相対パスを絶対パスに変換することができます。Path.resolve()で、..や.を含むパスを解決することができます。/home/test.txtパスの操作pathlibでは、パスに対して様々な操作を行うことができます。パスの削除path.rmdir()ファイルの操作pathlibでは、ファイルに対して様々な操作を行うことができます。ファイルの書き込みpath.write_text(json.dumps(data))open()を使うよりも、pathlibを使った方が、簡潔に書くことができます。ファイルを閉じる処理を書く必要がないので、コードが簡潔になります。[PosixPath('/home/user/test.txt')]まとめいかがでしたでしょうか?pathlibは、複雑なファイル構造を扱うときに、いつも重宝しています。langchainとかをこねこねしてますバッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。