python的%USERPROFILE%env变量

Ver*_*rax 8 python environment windows-7-x64 python-2.7 os.path

我正在用Python 2.7编写一个脚本.

它需要能够访问Windows中当前用户配置文件的任何人.

这是我目前拥有的变量和功能:

import os
desired_paths = os.path.expanduser('HOME'\"My Documents")
Run Code Online (Sandbox Code Playgroud)

我确实怀疑这expanduser会起作用.我试图在Python中寻找Windows Env变量,希望找到一个列表并知道将它转换为什么.要么这样的工具不存在,要么我只是没有使用正确的搜索术语,因为我还是很新的学习.

jed*_*rds 15

您可以通过os.environ映射访问环境变量:

import os
print(os.environ['USERPROFILE'])
Run Code Online (Sandbox Code Playgroud)

这适用于Windows.对于另一个操作系统,您需要适当的环境变量.

另外,在Python中连接字符串的方法是使用+符号,所以这样:

os.path.expanduser('HOME'\"My Documents")
                   ^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

应该是别的东西.但是为了连接路径你应该更加小心,并且可能想要使用类似的东西:

os.sep.join(<your path parts>)
# or
os.path.join(<your path parts>)
Run Code Online (Sandbox Code Playgroud)

(两者之间略有区别)

如果您想要当前用户的My Documents目录,您可以尝试以下方法:

docs = os.path.join(os.environ['USERPROFILE'], "My Documents")
Run Code Online (Sandbox Code Playgroud)

或者,使用expanduser:

docs = os.path.expanduser(os.sep.join(["~","My Documents"]))
Run Code Online (Sandbox Code Playgroud)

最后,要查看设置了哪些环境变量,您可以执行以下操作:

print(os.environ.keys())
Run Code Online (Sandbox Code Playgroud)

(参考查找设置了环境变量的列表)


小智 5

顺便说一下os.path.expanduser,使用 a~似乎比使用 更可靠'HOME'