2015/10/29

Python Tips:カレントユーザのホームディレクトリのパスを取得したい

Python でカレントユーザのホームディレクトリのパスを取得する方法をご紹介します。

Python でカレントユーザのホームディレクトリを取得するには os.path.expanduser() 関数を使うのが便利です。

import os.path

print(os.path.expanduser('~'))  
# => /Users/ユーザー名

print(os.path.expanduser('~/.bashrc'))
# => /Users/ユーザー名/.bashrc

公式のドキュメントには以下のように説明されています。

On Unix, an initial ~ is replaced by the environment variable HOME if it is set; otherwise the current user’s home directory is looked up in the password directory through the built-in module pwd. An initial ~user is looked up directly in the password directory.

On Windows, HOME and USERPROFILE will be used if set, otherwise a combination of HOMEPATH and HOMEDRIVE will be used. An initial ~user is handled by stripping the last directory component from the created user path derived above.

Unix では、先頭の ~ は、環境変数 HOME が設定されているならその値に置き換えられます。そうでなければ、現在のユーザのホームディレクトリをビルトインモジュール pwd を使ってパスワードディレクトリから探して置き換えます。先頭の ~user については、直接パスワードディレクトリから探します。

Windows では ~ だけがサポートされ、環境変数 HOME または HOMEDRIVE と HOMEPATH の組み合わせで置き換えられます。

便利ですねー。


参考
linux - How to find the real user home directory using python? - Stack Overflow
10.1. os.path — Common pathname manipulations — Python 2.7.10 documentation
10.1. os.path — 共通のパス名操作 — Python 2.7ja1 documentation

0 件のコメント: