web-dev-qa-db-ja.com

pythonの%USERPROFILE%env変数

Python 2.7でスクリプトを書いています。

Windowsの現在のユーザープロファイルに誰でもアクセスできる必要があります。

これは私が現在持っている変数と関数です:

import os
desired_paths = os.path.expanduser('HOME'\"My Documents")

ただし、このexpanduserが機能するかどうかは疑問です。 PythonでWindows環境変数を探して、リストを見つけて何に変換するかを知ってみました。そのようなツールが存在しないか、適切な検索用語を使用していないためです。私はまだかなり新しく、学んでいます。

8
Verax

os.environマッピング を介して環境変数にアクセスできます。

import os
print(os.environ['USERPROFILE'])

これはWindowsで機能します。別のOSの場合、適切な環境変数が必要になります。

また、Pythonの文字列を連結する方法は+記号を使用するため、次のようになります。

os.path.expanduser('HOME'\"My Documents")
                   ^^^^^^^^^^^^^^^^^^^^^

おそらく何か他のものでなければなりません。ただし、パスを連結するには、より注意が必要であり、おそらく次のようなものを使用する必要があります。

os.sep.join(<your path parts>)
# or
os.path.join(<your path parts>)

(2つの間にわずかな違いがあります)

現在のユーザーのマイドキュメントディレクトリが必要な場合は、次のようにしてみてください。

docs = os.path.join(os.environ['USERPROFILE'], "My Documents")

または、expanduserを使用します。

docs = os.path.expanduser(os.sep.join(["~","My Documents"]))

最後に、どの環境変数が設定されているかを確認するには、次のようにします。

print(os.environ.keys())

(設定されている環境変数のリストを見つけることに関して)

15
jedwards

os.path.expanduser を使用すると、~を使用する方が'HOME'を使用するよりも信頼性が高いように見えます。

2
Magnus