我尝试使用'tempfile'模块来操作和创建文本文件。一旦文件准备好,我想将其保存到磁盘上。我以为这只需要使用'shutil.copy'就可以了。但是,我遇到了一个'permission denied' IOError:
>>> import tempfile, shutil
>>> f = tempfile.TemporaryFile(mode ='w+t')
>>> f.write('foo')
>>> shutil.copy(f.name, 'bar.txt')
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
shutil.copy(f.name, 'bar.txt')
File "C:\Python25\lib\shutil.py", line 80, in copy
copyfile(src, dst)
File "C:\Python25\lib\shutil.py", line 46, in copyfile
fsrc = open(src, 'rb')
IOError: [Errno 13] Permission denied: 'c:\\docume~1\\me\\locals~1\\temp\\tmpvqq3go'
>>>
使用'tempfile'库时是否不打算这样做?有更好的方法吗? (也许我忽略了一些非常微不足道的东西)
os.remove
可以工作 - 或者你可以在 "all done" 后直接关闭NamedTemporaryFile
而不使用delete=False
。 - K Zdelete=False
,shutil.copy
函数就不能正常工作,会导致原来的IOError
错误。因此,在这种情况下,我同意@jedierikb的观点,你需要使用os.remove
函数。 - cod3monk3yNamedTemporaryFile
返回的对象是类似文件的对象,因此它可以与shutil.copyfileobj
一起使用。 - cod3monk3y