勉強。
成果物
経緯
なんかPythonのパスって面倒くさい。毎回os
, os.path
, pathlib`あたりのモジュールAPIをググっている気がする。
そこで、勉強がてら、まとめたクラスを書いてみた。C#のAPIを手本にして。
結論
勉強にはなった。演算子オーバーライドとか。
実用性はない。ほぼ単なるラッパ。やってみたら別にわざわざ書くまでもない。むしろ下手な独自クラスなんて無いほうが良いと実感した。絶対バグある。pathlib
使うべき。
演算子オーバーライド
Path('/tmp/work/A/B/C/D.efg') << 3
で/tmp/work/A
みたいにできるPath('/tmp/work/A/B/C/D.efg')[0]
でtmp
,[1]
でwork
, のように取得できる(今思えば/
がルートだった)
今見ると雑すぎて失笑。戻り値がテキストとPath型で統一性ゼロ。getできるのにsetできない。
あと、部分テキストの取得に関してはpathlib.PurePath.parts
で実装されてた。(タプルなので値をセットできないが)
11.1. pathlib — オブジェクト指向のファイルシステムパス — Python 3.6.5 ドキュメント
ドキュメント読まずに何してるんだか……。