【问题标题】:Concurrent file access in PythonPython中的并发文件访问
【发布时间】:2014-01-11 17:00:24
【问题描述】:

我有一个 Python 脚本,它每秒将内容附加到一个大文件中几次。我还需要第二个进程,它偶尔会打开那个大文件并从中读取。

如何在 Windows 中做到这一点?在 C++ 中,我可以简单地使用 _SH_DENYNO 打开一个文件,但 Python 中的等价物是什么?

【问题讨论】:

  • 您似乎将文件用作 IPC 机制。如果可以的话,可能值得重新考虑。

标签: python windows file concurrency


【解决方案1】:

您可以在 'r+b' 模式下打开文件。然后,您将拥有一个可由两个不同进程访问的文件对象。

这样做需要进程之间进行一些通信(或仔细处理进程)以了解文件的当前状态。

总体而言,这似乎是一种更好的方法,而不是覆盖操作系统/文件系统锁定来创建重复的文件对象,这似乎是一种不太可能结束的事情。

您也可以简单地让写入进程在每次访问文件时打开/关闭文件,然后与读取进程相同,假设这对您的程序是可行的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多