【发布时间】:2017-08-17 09:14:15
【问题描述】:
target=open("test.txt",'w+')
target.write('ffff')
print(target.read())
运行以下python脚本时(test.txt是一个空文件),它会打印一个空字符串。
但是,当重新打开文件时,它可以正常读取:
target=open("test.txt",'w+')
target.write('ffff')
target=open("test.txt",'r')
print(target.read())
这会根据需要打印出 'ffff'。
为什么会这样? 'target' 是否仍然被识别为没有内容,即使我在第 2 行更新了它,我必须重新分配 test.txt 给它?
【问题讨论】:
-
您忘记
close()文件。这会将数据刷新到文件中。 -
那个,否则你必须倒带文件。取决于你想要达到的目标。
-
@Jean-FrançoisFabre:潮红与这有什么关系?它是相同的文件对象,相同的文件句柄,相同的进程。如果需要,读取将在缓冲区中找到数据。
-
@MartijnPieters 在第二条评论中更正。但目前尚不清楚 OP 想要做什么。关闭并阅读或倒带阅读。
-
@Jean-FrançoisFabre:他们希望能够读取已写入文件的数据,而无需重新打开。