Python file.read()是否保证读取整个文件?

Python file.read()是否保证读取整个文件?,python,text,Python,Text,file.read()的文档说: Notice that when in non-blocking mode, less data than what was requested may be returned, even if no size parameter was given. 这是否意味着file.read()不能保证总是返回文本文件的全部内容,即使它很可能会返回? 如果是这样,读取整个文本文件的正确方法是什么?如果您想要整个文件,通常不会使用非阻塞模式,因为非阻塞的

file.read()的文档说:

    Notice that when in non-blocking mode, less data than what was requested
    may be returned, even if no size parameter was given.
这是否意味着
file.read()
不能保证总是返回文本文件的全部内容,即使它很可能会返回?
如果是这样,读取整个文本文件的正确方法是什么?

如果您想要整个文件,通常不会使用非阻塞模式,因为非阻塞的目的是获取您正在等待的I/O上可用的任何数据,通常是一些异步流,其中可能有任何内容,也可能没有任何内容

如果是纯文本文件,您可以执行以下操作:

with open("file.txt", "r") as infile:
    for line in infile:
         # something with a line of text here
         print(line)
对于非常规文件的“文件”,如果您专门打开了
file.read()
不尝试读取所有内容的模式,则
file.read()
可能不会读取所有内容


文档指定了非阻塞模式。非阻塞模式是可以在Unix中的上设置的模式,它仅对表示套接字、管道或其他通信设备的“文件”有效。在非阻塞模式下,如果您试图读取比当前可用数据更多的数据,则文件将为您提供它所拥有的数据,而不是等待足够的数据到达。

为了澄清,您正在查看哪些文档?如果是在线文档,能否提供链接?如果是docstring,那么是哪个docstring?我问的部分原因是不同Python版本上的文件对象实现不同,而且即使在同一Python版本上也有多个文件实现。那么有没有办法通过Python打开非阻塞模式?或者它是一种操作系统配置?@AvivCohn:还有,还有其他一些方式。