4

Linux環境で、ファイルを作成してテキストを書き込みたいと思います。

HTMLFILE: "$MYUSER/OUTPUT/myfolder/mytext.html"
f = open(HTMLFILE, 'w')

IOError: [Errno 2] No such file or directory: "$MYUSER/OUTPUT/myfolder/mytext.html"

「$MYUSER/ OUTPUT /myfolder/」ディレクトリの読み取り/書き込み権限があります。

なぜこのエラーが発生するのですか?mytext.htmlファイルを作成しないのはなぜですか?

4

3 に答える 3

10

os.path.expandvars()助けられる:

f = open(os.path.expandvars(HTMLFILE), 'w')

open実際のファイル名のみを扱います。 expandvars文字列内の環境変数を展開できます。

于 2012-07-01T00:44:07.993 に答える
5

2つの方法があります。os.environ()を使用して変数値を取得する

HTML_PATH = "/OUTPUT/myfolder/mytext.html"
f = open(os.environ('MYUSER') + HTMLFILE, 'w')

os.path.expandvars()の使用:

HTMLFILE = "$MYUSER/OUTPUT/myfolder/mytext.html"
f = open(os.path.expandvars(HTMLFILE), 'w')
于 2012-07-01T00:50:10.650 に答える
3

$MYUSERシェル変数を参照します。Pythonはそれらを解決しません。osパッケージを使用して、ユーザーのホームディレクトリを取得しますos.getenv('MYUSER')

于 2012-07-01T00:42:20.313 に答える