6

我不确定这是错误还是功能,但是当我将目录更改为使用os.chdir()生成的目录时,tempfile.mkdtemp()os.getcwd()报告带有/private前缀的目录。

以下代码说明了这一点:

In [1]: import os, tempfile

In [2]: d = tempfile.mkdtemp()

In [3]: d
Out[3]: '/var/folders/s4/grpfgn297hjgnfws3tl_gnt80000gn/T/tmpmfNUYz'

In [4]: os.chdir( d )

In [5]: os.getcwd()
Out[5]: '/private/var/folders/s4/grpfgn297hjgnfws3tl_gnt80000gn/T/tmpmfNUYz'

有人可以解释为什么会这样吗?

4

1 回答 1

7

/var是一个符号链接/private/var

$ ls -l /var
lrwxr-xr-x@ 1 root  wheel  11 Dec  2  2011 /var -> private/var

tempfile只是使用环境TMPDIR变量作为路径位置的前缀,所以它只是一个字符串。但是os.getcwd()正在解决绝对位置:

$ echo $TMPDIR
/var/folders/04/kc575q1n6x9drkwxyfljg5zw0000gn/T/
于 2012-09-18T18:21:27.733 回答