当我将第二个文件类型设置为“ r +”,然后在file_two.read()上进行打印时,它显示了第二个文件的内容。当我在下一行进行另一次打印时,它显示文件为空。
是的,这是预期的行为。文件指针指向末尾的文件末尾file_two.read()
,因此任何进一步读取的尝试都会返回一个空字符串。例如,检查以下内容:
with open("test.txt") as f:
print f.readline() # => prints the first line, sets file pointer to second line
print f.read() # => prints everything from the second line on
with open("test.txt") as f:
print f.read() # => prints entire file, sets file pointer to end of file
f.seek(0) # => reset file pointer to beginning of file
print f.read() # => prints entire file
同样,当我将文件类型设置为“ a +”时,即使我可以清楚地看到文本文件中的信息确实存在,两次也都将文件显示为完全空。
当您open("test.txt", "a+")
将文件指针设置为文件末尾时,因此任何读取尝试都会产生一个空字符串。确实,这就是您可以 附加 到文件的原因。如果是file_two.seek(0)
这样file_two.write()
,则书面文字将添加到的开头file_two
。