1. ホーム
  2. python

[解決済み] Pythonを使って実ユーザーのホームディレクトリを見つけるには?

2023-06-25 06:21:32

質問

を変更すると HOME (linux) または USERPROFILE (windows)環境変数を設定し、Pythonスクリプトを実行すると、新しい値をユーザーホームとして返します。

os.environ['HOME']
os.exp

環境変数に頼らず、実ユーザーのホームディレクトリを見つける方法はないでしょうか?

を編集してください。

Windowsでレジストリを読み込んでuserhomeを見つける方法を紹介します。

http://mail.python.org/pipermail/python-win32/2008-January/006677.html

を編集してください。

pywin32を使ってwindows homeを探すのも一つの手です。

from win32com.shell import shell,shellcon
home = shell.SHGetFolderPath(0, shellcon.CSIDL_PROFILE, None, 0)

どのように解決するのですか?

私が思うに os.path.expanduser(path) は役に立つかもしれません。

UnixとWindowsでは、引数を初期コンポーネントで返すと ~ または ~user はそのユーザーのホームディレクトリに置き換わります。

Unix では、最初の ~ は、環境変数 HOME が設定されていればそれに置き換えられ、 そうでなければ現在のユーザのホームディレクトリが パスワードディレクトリの中から組み込みモジュールの pwd . 初期の ~user はパスワードディレクトリで直接検索されます .

Windows では、HOME と USERPROFILE が設定されていればそれが使われ、そうでなければ HOMEPATH と HOMEDRIVE の組み合わせが使用されます。 が使用されます。 最初の ~user は、上記の作成されたユーザーパスから最後のディレクトリコンポーネントを取り除くことで処理されます。 .

展開に失敗した場合、またはパスがチルダで始まらない場合、パスは変更されずに返されます。

とすればいいんですね。

os.path.expanduser('~user')