如何用Python的with语句同时读写文件?代码读取输出为空
解决文件读写时
read()返回空的问题 问题原因
当你完成文件写入操作后,文件的文件指针会停留在文件的末尾位置。此时调用read()方法,会从当前指针位置开始读取,自然读不到任何内容——这和你使用w+/r+/a+模式无关,本质是指针位置的问题。
修复方案
在调用read()之前,使用seek(0)方法将文件指针移回文件开头即可。修改后的代码如下:
def student(): with open("students.txt","w+") as my_file: for i in range(20): user = input("Enter your name : ") my_file.write(f"{user}\n") # 将文件指针移到文件开头 my_file.seek(0) print(my_file.read()) student()
不同模式的注意事项
w+:会先清空目标文件的原有内容,再进行读写操作,如果不需要清空原文件,建议用a+(追加模式)a+:默认指针在文件末尾,写入后同样需要调用seek(0)才能读取全部内容r+:要求文件必须存在,写入时会从当前指针位置覆盖内容,使用前确保指针位置符合需求
内容的提问来源于stack exchange,提问作者momoshki
相关产品推荐
相关产品推荐

