f = open(r"D:\python_project\mxxl\test.txt", "r", encoding="utf-8") data = f.read() print(data[:245]) f.close()
结果如下:
f = open(r"D:\python_project\mxxl\test.txt", "r", encoding="utf-8") data = f.read() data1 = f.read() print(data[:245]) print("-------------------------------------") print(data1[:245]) f.close()
结果如下:
问题:
我们读取了2遍内容,为什么只显示了一次读取的结果呢?对于上述问题,我们用一张图回答上述问题。
f = open(r"D:\python_project\mxxl\test2.txt","w",encoding="utf-8") f.write("我爱北京天安门") f.close()
假如我们在写一句天安门上太阳升
,会出现啥情况呢?
f = open(r"D:\python_project\mxxl\test2.txt","w",encoding="utf-8") f.write("天安门上太阳升") f.write("很好,很好") f.close()
意外发生:
当我们再次写入新的内容的时候,发现之前写的内容不见了,这是为啥呢?这就是我们下面要讲述的文件读写的几种常见模式。
对于这种模式,不管是读取文件中的内容,还是朝文件中写入内容。前提条件:文件存在。
# 只读取文件中的内容 f = open(r"D:\python_project\mxxl\test\test.txt", "r+", encoding="utf-8") data = f.read() print(data) f.close() # 朝文件中写入内容后,立即读取,会出现啥问题? f = open(r"D:\python_project\mxxl\test\test.txt", "r+", encoding="utf-8") f.write("黑姑娘") data = f.read() print(data) f.close() # 朝文件中写入内容后,调整句柄位置后,再读取,会出现啥问题? f = open(r"D:\python_project\mxxl\test\test.txt", "r+", encoding="utf-8") f.write("黑姑娘") f.seek(0) data = f.read() print(data) f.close()
结果如下:
# 直接往文件中写入内容 f = open(r"D:\python_project\mxxl\test\test.txt", "w+", encoding="utf-8") f.write("bbbbbb") f.close() # 直接读取上述文件,看看会发生啥问题?(特别注意这一步) f = open(r"D:\python_project\mxxl\test\test.txt", "w+", encoding="utf-8") data = f.read() print(data) f.close() # 朝文件中写入内容后,立即读取,又会发生什么? f = open(r"D:\python_project\mxxl\test\test.txt", "w+", encoding="utf-8") f.write("哈哈哈哈哈") data = f.read() print(data) f.close() # 朝文件中写入内容后,调整句柄位置后,再读取,会发生什么? f = open(r"D:\python_project\mxxl\test\test.txt", "w+", encoding="utf-8") f.write("嘿嘿嘿嘿嘿") f.seek(0) data = f.read() print(data) f.close()
结果如下:
# 直接朝文件中写入内容 f = open(r"D:\python_project\mxxl\test\test.txt", "a+", encoding="utf-8") f.write("哈哈") f.close() # 直接读取文件中的内容 f = open(r"D:\python_project\mxxl\test\test.txt", "a+", encoding="utf-8") data = f.read() print(data) f.close() # 调整句柄位置后,再读取文件中的内容 f = open(r"D:\python_project\mxxl\test\test.txt", "a+", encoding="utf-8") f.seek(0) data = f.read() print(data) f.close()
结果如下:
f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8") data = f.read() print(type(data)) print(data) f.close()
结果如下:
f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8") data = f.readline() print(type(data)) print(data) f.close() f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8") for i in range(3): data = f.readline() print(data) f.close()
结果如下:
去掉每一行末尾的换行符:
f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8") for i in range(3): data = f.readline().strip() print(data) f.close()
结果如下:
f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8") data = f.readlines() print(type(data)) print(data) f.close()
结果如下:
f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8") for line in f: print(line.strip())
部分截图如下: