16

単純なPython(2.7.3)スクリプトで作業していますが、ユーザーのホームフォルダーを取得する必要があります。私は試した:

import os
home_folder = os.environ["HOME"]

また、このコードをIDLEで実行している場合は正常に機能しますが、cmdから起動すると、次のようになります。«KeyError: 'HOME'»

誰かが理由を教えてもらえますか?どうすればこの問題を解決できますか?

4

3 に答える 3

30

WindowsはUSERPROFILE、の代わりにを使用しHOMEます。WindowsにはありませんしHOME、他のOSにもありませんUSERPROFILE。したがって、これらのいずれかを使用すると、プラットフォームに依存しなくなります。

プラットフォームの独立性を維持するために、次のようにexpanduserからを使用できます。os.path

import os.path
home_folder = os.path.expanduser('~')

ちなみに、これを使用print(os.environ)して、アクセスできるすべての環境変数を確認できます。これは、追加機能があることを示していますIDLE

于 2013-02-07T01:48:58.727 に答える
6

WindowsにはHOME環境変数がありません。代わりにUSERPROFILEを使用します。この問題を解決するために、コンソールで入力する新しい変数「HOME」を定義できます。

set HOME=%USERPROFILE%

USERPROFILE変数のコピーとして。

それらが同一のタイピングであることを確認できます。

echo %USERPROFILE%
echo %HOME%

現在のセッションで機能します。

于 2015-11-26T09:42:19.107 に答える
1

「cmdからの起動」に完全に基づいてWindowsでこれを実行しようとしているようです。IDLEはそれを便利なものとして提供しています。WindowsUSERPROFILEではの代わりに使用しますHOME。envar%USERPROFILE%はWin32$HOMEです。

于 2013-02-07T01:40:18.917 に答える