os.tmpfile() 在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 个回答
1
正如Griffin所说,问题在于os.tmpfile()
这个函数试图在根目录下创建一个文件。如果你不想以管理员身份运行这个脚本,可以使用os.tmpnam()
,然后自己来处理这个文件。
警告: 使用tmpnam()可能会受到符号链接攻击的威胁。
3
以管理员身份运行这个脚本(右键点击脚本,选择“以管理员身份运行”),因为这个脚本没有权限去执行 os.tmpfile() 这个功能。
补充说明:我看到你在使用解释器,直接以管理员身份运行解释器就可以了。如果你是通过终端访问它,那么以管理员身份运行终端就足够了。