Python os.environ["HOME"] 在IDLE中有效,但在脚本中无效
我正在写一个简单的Python(2.7.3)脚本,但我需要获取用户的主文件夹。
import os
home_folder = os.environ["HOME"]
当我在IDLE上运行这段代码时,一切都很好,但如果我从命令行启动它,就会出现:«KeyError: 'HOME'»
有人能告诉我这是为什么吗?我该如何解决这个问题?
3 个回答
1
听起来你是在Windows上运行这个,因为你提到了从命令行(cmd)启动它。IDLE给你这个提示是为了方便你;在Windows上,你应该用USERPROFILE
而不是HOME
。%USERPROFILE%
这个环境变量就相当于Windows里的$HOME
。
6
在Windows系统中,没有叫做HOME的环境变量。它用的是USERPROFILE这个变量。
要解决这个问题,你可以在控制台里定义一个新的变量“HOME”,方法是输入:
set HOME=%USERPROFILE%
这个新变量会和USERPROFILE变量一模一样。
你可以通过输入以下内容来检查它们是否相同:
echo %USERPROFILE%
echo %HOME%
这样做只会在当前会话中有效。
34
在Windows系统中,使用的是USERPROFILE
,而不是HOME
。其实,Windows没有HOME
这个概念,而其他操作系统也没有USERPROFILE
,所以如果只用这两个中的一个,就会失去跨平台的能力。
为了保持跨平台的能力,你可以使用os.path
里的expanduser
,用法如下:
import os.path
home_folder = os.path.expanduser('~')
顺便提一下,你可以用print(os.environ)
来查看你可以访问的所有环境变量,这样可以发现IDLE
还有一些额外的变量。