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

有两种方法。使用 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指的是一个shell变量。Python 无法解决这些问题。使用os包获取用户主目录通过os.getenv('MYUSER')

于 2012-07-01T00:42:20.313 回答