めちゃくちゃ基本的な話なのだが、いままであまり使うことがなかったので備忘録として。
Pythonでプログラムを書いていて、ホームディレクトリ(“~”)を使ってファイルパスを取得するコードを書いていたのだが、なぜか”~”というディレクトリが生成されてしまいホームディレクトリとして認識されないという状況に見舞われた。
理由は簡単で、pythonでは~というパスは自動で”/home/user/”に変換をしてくれないからだ。
Pythonはコードが書きやすいのでうっかりしていたのだが、ちゃんとこの辺の対応をしなければいけない。
対応としてはos.path.expanduser()
を使えばいい。基礎的なコマンドなので全く難しいことはない。
ということで、そのやり方を以下に記す。
動作環境
・Linux Ubuntu 18.04 LTS
・python 3.8
os.path.expanduser()の使用方法
import os
os.path.expanduser("~")
でユーザのホームディレクトリを取得することができる。
また、
os.path.expanduser("~/hoge/huga")
のように”~”を含めたpathを取得する際にも利用できる。
逆にos.path.join(“~/hoge/huga”)
とすると./~/hoge/hugaというpathで認識される(~はただのファイル名として認識される)ので気を付けるようにしたい。
os.path.mkdir("~/hoge
“)
というコマンドを使っていたら”~”というディレクトリがカレントに生成されていたので不思議に思っていたけど、よく考えたらちゃんとこの辺のpython上での動作を確認したことなかったため調べたうえで今回の記事を作成いたしました。
以上
コメント