我有一个用Python编写的应用程序,它将大量数据写入该%TEMP%
文件夹.奇怪的是,每过一次,它就会死去,然后回来IOError: [Errno 28] No space left on device
.驱动器有足够的可用空间,%TEMP%
不是自己的分区,我是管理员,系统没有配额.
Windows是否人为地对数据设置了某些类型的限制%TEMP%
?如果没有,有什么可能导致这个问题的想法?
编辑:在下面的讨论之后,我澄清了这个问题,以便更好地解释发生了什么.
你遇到的确切错误是什么?
你创建了太多临时文件吗?
如果GetTempFileName方法用于创建超过65535个文件而不删除以前的临时文件,则会引发IOException .
如果没有唯一的临时文件名可用,GetTempFileName方法将引发IOException.要解决此错误,请删除所有不需要的临时文件.
需要注意的一点是,如果您间接使用Win32 API,而您只是使用它来获取临时文件名,请注意在(间接)调用它时:
在磁盘上创建唯一命名的零字节临时文件,并返回该文件的完整路径.
如果您正在使用该路径但也更改返回的值,请注意您实际上可能正在创建一个0byte文件和一个额外的文件(例如My_App_tmpXXXX.tmp和tmpXXXX.tmp).
正如Nestor在下面建议的那样,考虑在完成使用后删除临时文件.