Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
pathlibのススメ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yumihiki
November 07, 2022
Programming
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
pathlibのススメ
Pythonの標準ライブラリのpathlibについて解説したスライドです。
osモジュールとは何が違うのか、どう便利なのかちょっと解説したスライドになります。
Yumihiki
November 07, 2022
More Decks by Yumihiki
See All by Yumihiki
ノリと勢いで勉強会を共同主催しはじめた話
nibuno
1
490
LTってなんなん?
nibuno
0
180
【初心者向け】ググらずに!? ターミナル上で Pythonオブジェクトを調べよう
nibuno
0
570
勇気出してアウトプットしたらコメントをもらえて自分の理解が深まった良い話🤩
nibuno
0
220
テスト駆動開発のススメ
nibuno
2
22k
目標を決めるにあたって 新年の抱負 超LT会- vol.2
nibuno
0
410
パーフェクトPHPのススメ
nibuno
1
1.2k
Other Decks in Programming
See All in Programming
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
230
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
140
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
120
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
590
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
770
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
1.7k
What We Talk About When We Talk About XP
m_seki
2
450
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Pragmatic Product Professional
lauravandoore
37
7.4k
The Curious Case for Waylosing
cassininazir
1
500
Six Lessons from altMBA
skipperchong
29
4.5k
The Limits of Empathy - UXLibs8
cassininazir
1
650
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Are puppies a ranking factor?
jonoalderson
2
3.9k
BBQ
matthewcrist
89
10k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Transcript
Yumihiki pathlibのススメ osやPurePath/Pathの違いについて
はじめに はじめに 自己紹介 LTの内容について(何を得てもらうことができるか) pathlibとは? おわりに
自己紹介 Yumihiki / Tatsuya NIBUNO パーソルテクノロジースタッフ(株) 関西G 2020年2月〜実務未経験から転職 エセ関西人
LTの内容について(何を得てもらうことができるか) • pathlibの概要と使い方 ◦ osとの違い • pathlibのことを知らなかった方には学びがある話 ◦ 知っている人はちょっと退屈かも・・・
pathlibとは? • ファイルシステムパスを表すクラスを提供している • Python3.4から追加された標準ライブラリ • PEP428で提案・採用された様子 (元々はサードパーティモジュールだった)
pathlibとは? パス操作が出来るモジュールで 標準ライブラリにos(os.path)が あるけど何がちゃうん?
pathlibとは? • osより使いやすい・分かりやすい(個人の意見) • os.pathは文字列操作 • pathlibは高水準のパスオブジェクト と言われている
pathlibとは? お、おう・・・(これだけじゃよー分からん) なのでもうちょっと説明していきます
pathlibとは? • pathlibには6つのクラスが存在する • PurePath / PurePosixPath / PureWindowsPath •
Path / PosixPath / WindowsPath
pathlibとは? Path PosixPath PurePath PurePosixPath PureWindowsPath WindowsPath https://docs.python.org/ja/3/library/pathlib.html#module-pathlib のイラストより
pathlibとは? Path PosixPath PurePath PurePosixPath PureWindowsPath WindowsPath https://docs.python.org/ja/3/library/pathlib.html#module-pathlib のイラストより
pathlibとは? Path PosixPath PurePath PurePosixPath PureWindowsPath WindowsPath Pathで全てカバー できるのでPathを 使用すればOK
https://docs.python.org/ja/3/library/pathlib.html#module-pathlib のイラストより
pathlibとは? • 純粋パス(以降、PurePath) • I/O を伴わない純粋な計算操作を提供する = ファイルシステムのパス取得 •
3つのアクセス方法がある(通称flavours)
pathlibとは? Path PosixPath PurePath PurePosixPath PureWindowsPath WindowsPath https://docs.python.org/ja/3/library/pathlib.html#module-pathlib のイラストより
• PurePathは実行時にPosixかWindowsか判定して PurePosixPath / PureWindowsPath を返してくれる • そのため3つクラスがあるが、 基本的にはPurePathを用いれば良い pathlibとは?
pathlibとは? • 具象パス(以降、Path) • PurePathを継承し I/O 操作も提供する = システムコール(OS操作)を行う •
PurePathと同じく3つのアクセス方法がある
pathlibとは? Path PosixPath PurePath PurePosixPath PureWindowsPath WindowsPath https://docs.python.org/ja/3/library/pathlib.html#module-pathlib のイラストより
pathlibとは? • Path / PosixPath / WindowsPath の3つが存在する • 使用者としてはPathを利用すれば良い
◦ PurePath同様、環境を判定してくれるので
pathlibとは? • そしてpathlib全体の話としては PurePath / Path で区別せず 基本的にはPathを用いれば良い ◦ PathはPurePathのサブクラスなので
pathlibとは? 前置きが長くなったけど 語るよりコードを見てもらった方が良いですよね😆
pathlibとは? 実行環境 macOS Big Sur バージョン 11.6.4 Python3.10.5 ターミナル
を使用(pythonコマンドで対話環境を呼出) 🔴 🟠 🟢
pathlibとは? >>> from pathlib import Path >>> p = Path("/Users/yumihiki/module_pathlib.py")
>>> p PosixPath('/Users/yumihiki/module_pathlib.py') # 利用環境がMacなので、PosixPathになっていることがわかる 🔴 🟠 🟢
pathlibとは? >>> p.name 'module_pathlib.py' >>> p.stem 'module_pathlib' >>>
p.suffix '.py' 🔴 🟠 🟢
pathlibとは? 一方、os.pathモジュールを利用した場合・・・ (import os した前提で以降記述)
pathlibとは? >>> os.path.basename("/Users/yumihiki/module_pathlib.py") 'module_pathlib.py' >>> os.path.splitext( os.path.split("/Users/yumihiki/module_pathlib.py")[1] )[0] 'module_pathlib'
>>> os.path.splitext("/Users/yumihiki/module_pathlib.py")[1] '.py' 🔴 🟠 🟢
pathlibとは? ちょっと可読性に欠ける気がする😔
pathlibとは? そのほかPathでIO操作をしてみる😎
pathlibとは? >>> p0 = Path("/Users/yumihiki/study") >>> p0.mkdir() # ディレクトリ作成
>>> p1 = Path("/Users/yumihiki/study/pathlib_study.py") >>> p1.touch() # ファイル作成 >>> p1.unlink() # ファイル削除 🔴 🟠 🟢
pathlibとは? osの場合・・・ (正確にはファイルの作成はosは用いられない)
pathlibとは? >>> os.mkdir("/Users/yumihiki/study") >>> with open("/Users/yumihiki/study/pathlib_study.py") as f: ...
f.write("") … 0 >>> os.remove("/Users/yumihiki/study/pathlib_study.py") 🔴 🟠 🟢
pathlibとは? ファイル名取得の時と比べるとまだ分かりやすいけど それでもpathlibの方がより分かりやすい・使いやすそう!
pathlibとは? 公式リファレンスに os と pathlib の対応表がある! 「これどうしたら良い?」っていう時に便利です!
おわりに 個人的にはos.pathよりも直感的に分かりやすく 使えるところが好きです😻
おわりに PathをimportしたのにPurePathも利用していたなと ソースを思い出しました・・・😱
おわりに Python2系から移行されたソースを参考にして pathlibを使えるけど使っていなかった・・・という ケースもあると思うのでぜひ活用してみてください!
おわりに ご静聴ありがとうございました!