os.tmpfile()在windows下不起作用?

时间:2011-10-18 13:19:01

标签: python windows

我正在尝试在windows下使用generateDS,它使用os.tmpfile。不幸的是,os.tmpfile对我不起作用:

(oneclickcos) C:\Users\Marcin\Documents\oneclickcos\xsd>python
Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.tmpfile()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied
>>>

我的所有临时目录都设置为完全控制每个人,所以这不应该是问题。

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:3)

以管理员身份运行脚本(右键单击脚本并选择“以管理员身份运行”),脚本缺少执行os.tmpfile()的权限。

编辑: 当我看到你正在使用解释器时,只需以管理员身份运行解释器即可。如果您通过终端访问它,以管理员身份运行终端就足够了。

答案 1 :(得分:1)

正如格里芬指出的那样,问题是os.tmpfile()试图在根目录中创建一个文件。如果您不想以管理员身份运行脚本,可以使用os.tmpnam()并自行处理该文件。

警告:使用tmpnam()容易受到符号链接攻击