我正在编写一个简单的 Python (2.7.3) 脚本,但我必须获取用户的主文件夹。我试过了:
import os
home_folder = os.environ["HOME"]
当我在 IDLE 上运行此代码时它工作正常,但如果我从 cmd 启动它,它会给我:«KeyError: 'HOME'»
有人能告诉我为什么吗?我怎么解决这个问题?
我正在编写一个简单的 Python (2.7.3) 脚本,但我必须获取用户的主文件夹。我试过了:
import os
home_folder = os.environ["HOME"]
当我在 IDLE 上运行此代码时它工作正常,但如果我从 cmd 启动它,它会给我:«KeyError: 'HOME'»
有人能告诉我为什么吗?我怎么解决这个问题?
Windows 使用USERPROFILE
, 而不是HOME
. Windows 没有HOME
,其他操作系统没有USERPROFILE
,因此使用其中任何一个都会降低平台独立性。
为了保持平台独立性,您可以使用expanduser
from os.path
,如下所示:
import os.path
home_folder = os.path.expanduser('~')
附带说明一下,您可以使用它print(os.environ)
来查看您可以访问的所有环境变量,这表明它IDLE
具有附加功能。
Windows 没有 HOME 环境变量。它使用 USERPROFILE 代替。要解决此问题,您可以在控制台上定义一个新变量“HOME”:
set HOME=%USERPROFILE%
作为 USERPROFILE 变量的副本。
您可以检查它们是否是相同的类型:
echo %USERPROFILE%
echo %HOME%
它将适用于当前会话。
听起来您正在尝试完全基于“从 cmd 启动它”在 Windows 上运行它。IDLE 为您提供了便利;在 Windows 上使用USERPROFILE
而不是HOME
. envar%USERPROFILE%
是 Win32 $HOME
。