2016-07-23 78 views
2

我正在Python 2.7中编写脚本。%USERPROFILE%变量为python

它需要能够去任何当前用户在Windows中的配置文件。

这是变量和函数我目前有:

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

我有怀疑,这expanduser会的工作,虽然。我试图寻找Windows环境变量在Python中,希望找到一个列表,并知道如何将其转换为。这样的工具不存在,或者我只是没有使用正确的搜索词,因为我仍然很新,学习。

+0

您可以通过访问环境变量['os.environ'映射](https://docs.python.org/2/library/os.html#os.environ):'import os; print(os.environ ['USERPROFILE'])' – jedwards

+1

请注意,用户配置文件中的“我的文档”连接点不一定存在。例如,如果安装了非英文版的Windows,或者用户的文档文件夹已被移动或重定向。 (如果仅用于内部使用,您可能会行。) –

回答

6

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

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

这将在Windows上工作。对于另一个操作系统,您需要适当的环境变量。

此外,连接字符串在Python的方法是用+的迹象,所以这样的:

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

大概应该是别的东西。但是,以连接路径你应该更小心了,可能要使用类似:

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

(还有就是两者之间的细微区别)

如果你想的My Documents目录当前用户,你可以尝试这样的:

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

另外,使用expanduser:

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

最后,看到设置了什么样的环境变量,你可以这样做:

print(os.environ.keys()) 

(在参考寻找设置了什么样的环境瓦尔列表)