是否可以在不更改文件句柄的情况下以共享模式打开文件?

1 投票
2 回答
1122 浏览
提问于 2025-04-17 06:02

在Python中,我使用tempfile.mkstemp来打开一个临时文件进行写入,这样可以确保当文件被释放时,它会被删除(即使应用程序崩溃了也没关系)。

现在我需要把这个文件传递给另一个应用程序,但这个应用程序在文件仍然处于写入状态时无法打开它。

我能否改变文件的访问模式,或者在不改变文件句柄的情况下重新打开文件,以防止它被过早删除呢?

更新:以读取模式打开文件并不能解决问题,文件必须以shared模式打开。

2 个回答

-1

为什么不以 'a' 模式打开文件呢?这样你就可以读取文件并在后面添加内容了。

另外,为什么不手动打开临时文件,然后在程序结束时再删除它呢?

1

没有官方的办法可以在打开的文件中切换文件模式(比如读模式r、写模式w、追加模式a)。

与其使用TempFile,不如考虑使用mmap来在不同的程序之间共享数据。

撰写回答