Python 3.x Python文件在Linux中可以进行部分写入吗?

Python 3.x Python文件在Linux中可以进行部分写入吗?,python-3.x,Python 3.x,我正在Linux机器上运行python。 我想知道对open()返回的file对象执行的write()是否可以写入少于给定的数据量 我知道这是os.write()中的行为,但我不确定file.write()中是否也是这样 那么,我是否应该继续重试,直到所有数据都被写入?还是可以假设一切都是为了成功而写的?你是对的打开()返回一个“TextIOWrapper”。从它的docstring:“BuffereDiabase对象buffer上基于字符和行的层。” 假设f=open(“/path/to/te

我正在Linux机器上运行python。 我想知道对open()返回的file对象执行的write()是否可以写入少于给定的数据量

我知道这是os.write()中的行为,但我不确定file.write()中是否也是这样


那么,我是否应该继续重试,直到所有数据都被写入?还是可以假设一切都是为了成功而写的?

你是对的<代码>打开()返回一个“TextIOWrapper”。从它的docstring:“BuffereDiabase对象buffer上基于字符和行的层。”

假设
f=open(“/path/to/text.txt”,“w”)
,调用
f.flush()
将确保当前缓冲区中的所有数据都被刷新/写入
“/path/to/text.txt”


如果行缓冲处于活动状态(
f.line\u buffering==True
),则以换行符结尾的写入将自动刷新。

如果将
open
用作contextmanager(即
将open(…)用作f:f.write(…)
),则可以保证在离开上下文管理器后所有内容都已写入。或者,调用
.close()
也应该刷新所有缓冲区。谢谢您的回答。我一直不清楚open实际返回的是什么。另外,很抱歉我的回复太晚了,不客气。如果使用jupyter,可以执行
?f
,以获取有关文件对象的大量信息。在任何交互环境(包括jupyter)中,
help(f)
都能起到作用。还可以查看,即使用带有open('/path/to/file')的
作为f:
进行读取和写入,使用后会自动关闭文件,从而确保完成写入。