我需要锁定一个文件以便用Python编写.它将同时从多个Python进程访问.我在网上找到了一些解决方案,但大多数都失败了,因为它们通常只基于Unix或基于Windows.
如何以非阻塞模式读取二进制文件或文本文件的内容?
对于二进制文件:当我open(filename, mode='rb'),我得到一个实例io.BufferedReader.文件堡垒io.BufferedReader.read 说:
读取和返回大小字节,或者如果未给出大小或为负,则直到EOF或读取调用将在非阻塞模式下阻塞.
显然,直截了当open(filename, 'rb').read()是阻塞模式.令我惊讶的是,我无法在io如何选择非阻塞模式的文档中找到任何解释.
对于文本文件:当我open(filename, mode='rt'),我得到io.TextIOWrapper.我假设相关的文档是read基类中的文档io.TextIOBase; 并根据这些文档,似乎没有办法做到无阻塞阅读所有:
从流中读取并返回最多大小字符作为单个str.如果大小为负或无,则读取直到EOF.