Python基础(十六):文件读写,靠这一篇就够了!

2021/4/11 20:30:18

本文主要是介绍Python基础(十六):文件读写,靠这一篇就够了!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文件读写的流程

类比windows中手动操作txt文档,说明python中如何操作txt文件?

什么是文件的内存对象(文件句柄)?

演示怎么读取文件

  • ① 演示如下
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()

意外发生:当我们再次写入新的内容的时候,发现之前写的内容不见了,这是为啥呢?这就是我们下面要讲述的文件读写的几种常见模式。

文件读写的几种常见模式(你不清楚的知识点)

关于r+、w+、a+使用说明(易错点)

r+模式:可读可写

对于这种模式,不管是读取文件中的内容,还是朝文件中写入内容。前提条件:文件存在。

# 只读取文件中的内容
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()

结果如下:

w+:可读可写

# 直接往文件中写入内容
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()

结果如下:


a+:可读可写

# 直接朝文件中写入内容
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()

结果如下:


read、readline、readlines的区别

read()方法的使用说明

f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8")
data = f.read()
print(type(data))
print(data)
f.close()

结果如下:

readline()方法的使用说明

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()

结果如下:

readlines()方法的使用说明

f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8")
data = f.readlines()
print(type(data))
print(data)
f.close()

结果如下:

对于一个10G的大文件,怎么高效的查看文件中的内容呢?

相关说明

操作说明

f = open(r"D:\python_project\mxxl\test\test.txt","r",encoding="utf-8")
for line in f:
	print(line.strip())

部分截图如下:




这篇关于Python基础(十六):文件读写,靠这一篇就够了!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程