是否可以在不更改文件句柄的情况下以共享模式打开文件?
在Python中,我使用tempfile.mkstemp
来打开一个临时文件进行写入,这样可以确保当文件被释放时,它会被删除(即使应用程序崩溃了也没关系)。
现在我需要把这个文件传递给另一个应用程序,但这个应用程序在文件仍然处于写入状态时无法打开它。
我能否改变文件的访问模式,或者在不改变文件句柄的情况下重新打开文件,以防止它被过早删除呢?
更新:以读取模式打开文件并不能解决问题,文件必须以shared
模式打开。
2 个回答
-1
为什么不以 'a'
模式打开文件呢?这样你就可以读取文件并在后面添加内容了。
另外,为什么不手动打开临时文件,然后在程序结束时再删除它呢?
1
没有官方的办法可以在打开的文件中切换文件模式(比如读模式r、写模式w、追加模式a)。
与其使用TempFile,不如考虑使用mmap来在不同的程序之间共享数据。