from os.path import expanduser
print expanduser('~')
在" dos"框命令行:
c:c:\users\myuser <-- incorrect
在pythonwin会话中:
c:\users\myuser <-- correct
对于两个解释器来说,它都是相同的python 2.7.8解释器。
这可能取决于我是否从控制台运行。
如果我从命令行运行脚本,那就错了。从pythonwin运行的相同脚本显示正确的版本。
发生了什么? (我在Windows7上)
C:\> echo %HOMEDRIVE%
C:
C:\> echo %HOMEPATH%
\Users\myuser
C:\> echo %HOME%
C:C:\Users\myuser <-- aha!
答案 0 :(得分:4)
这里发生的事情是Python正在将~
扩展为以下之一,具有以下优先级:
%HOME%
%USERPROFILE%
%HOMEDRIVE%%HOMEPATH%
因此,在您的计算机上,我怀疑HOMEPATH
已定义c:\users\myuser
而不是正确的\users\myuser
。 HOMEDRIVE
可能已正确设置为c:
在你的pythonwin中,它可能正确定义HOME
或USERPROFILE
。
来自Python docs:
在Windows上,如果设置将使用HOME和USERPROFILE,否则将使用HOMEPATH和HOMEDRIVE的组合。通过从上面派生的创建的用户路径中剥离最后一个目录组件来处理初始〜用户。