>> reader = open(file-6ren">
gpt4 book ai didi

python - 简单的python文件写问题

转载 作者:行者123 更新时间:2023-11-28 22:05:51 25 4
gpt4 key购买 nike

我正在学习 Python,遇到了一些问题。在我的 Python 3.1 的 OSX 安装上,这发生在控制台中:

>>> filename = "test"
>>> reader = open(filename, 'r')
>>> writer = open(filename, 'w')
>>> reader.read()
''
>>> writer.write("hello world\n")
12
>>> reader.read()
''

然后在 BASH 中调用 more test 确认 test 中没有任何内容。怎么回事?

谢谢。

最佳答案

您看到此行为的原因有两个。

当您打开一个文件进行写入时(使用 Python 中的 "w" 打开模式),操作系统删除原始文件并创建一个全新的文件。因此,通过先打开文件进行读取和然后 写入,原始读取句柄引用了一个不再具有名称的文件(该文件仍然存在,直到您关闭它)。此时,您正在从一个与您正在写入的文件不同的文件中读取。

在您交换打开顺序以便您打开写入然后然后读取之后,您不一定能够从文件中读取数据,直到您刷新它:

>>> writer.flush()
>>> reader.read()
'hello world\n'

刷新文件会将 Python 文件缓冲区中可能存在的任何数据写入操作系统,这样当您从另一个句柄读取文件时,操作系统将返回数据。请注意,Python 本身并不知道这两个句柄指向同一个文件,但操作系统知道。

关于python - 简单的python文件写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com