大数跨境
0
0

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

Python基础(十五):文件读写,靠这一篇就够了! 数据分析与统计学之美
2021-02-27
0
今天就带着大家开始我们——Python学习的第二课,Python基础之文件读写。

1.文件读写的流程

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

2)什么是文件的内存对象(文件句柄)?
3)演示怎么读取文件
① 演示如下
 
f = open(r"G:\6Tipdm\file_read_write\yesterday.txt","r",encoding="utf-8")
data  = f.read()
print(data[:245])
f.close()
结果如下:
② 一个很奇怪的现象?
 
f = open(r"G:\6Tipdm\file_read_write\yesterday.txt","r",encoding="utf-8")
data  = f.read()
data1 = f.read()
print(data[:245])
print("-------------------------------------")
print(data1[:245])
f.close()
结果如下:
问题:我们读取了2遍内容,为什么只显示了一次读取的结果呢?对于上述问题,我们用一张图回答上述问题。
4)演示怎么写文件
 
f = open(r"G:\6Tipdm\file_read_write\yesterday2.txt","w",encoding="utf-8")
f.write("我爱北京天安门")
f.close()
结果如下:
假如我们在写一句天安门上太阳升,会出现啥情况呢?
 
f = open(r"G:\6Tipdm\file_read_write\yesterday2.txt","w",encoding="utf-8")
f.write("天安门上太阳升")
f.write("很好,很好")
f.close()
结果如下:
意外发生:当我们再次写入新的内容的时候,发现之前写的内容不见了,这是为啥呢?这就是我们下面要讲述的文件读写的几种常见模式。  

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

1)关于r+、w+、a+使用说明(易错点)
2)r+模式:可读可写
对于这种模式,不管是读取文件中的内容,还是朝文件中写入内容。前提条件:文件存在。
 
# 只读取文件中的内容
f = open(r"G:\6Tipdm\file_read_write\yesterday1.txt","r+",encoding="utf-8")
data = f.read()
print(data)
f.close()

# 朝文件中写入内容后,立即读取,会出现啥问题?
f = open(r"G:\6Tipdm\file_read_write\yesterday1.txt","r+",encoding="utf-8")
f.write("丽丽姑娘")

data = f.read()
print(data)
f.close()

# 朝文件中写入内容后,调整句柄位置后,再读取,会出现啥问题?
f = open(r"G:\6Tipdm\file_read_write\yesterday1.txt","r+",encoding="utf-8")
f.write("丽丽姑娘")
f.seek(0)
data = f.read()
print(data)
f.close()
结果如下:
3)w+:可读可写
 
# 直接往文件中写入内容
f = open(r"G:\6Tipdm\file_read_write\yesterday3.txt","w+",encoding="utf-8")
f.write("bbbbbb")
f.close()

# 直接读取上述文件,看看会发生啥问题?(特别注意这一步)
f = open(r"G:\6Tipdm\file_read_write\yesterday3.txt","w+",encoding="utf-8")
data = f.read()
print(data)
f.close()

# 朝文件中写入内容后,立即读取,又会发生什么?
f = open(r"G:\6Tipdm\file_read_write\yesterday3.txt","w+",encoding="utf-8")
f.write("哈哈哈哈哈")
data = f.read()
print(data)
f.close()

# 朝文件中写入内容后,调整句柄位置后,再读取,会发生什么?
f = open(r"G:\6Tipdm\file_read_write\yesterday3.txt","w+",encoding="utf-8")
f.write("嘿嘿嘿嘿嘿")
f.seek(0)
data = f.read()
print(data)
f.close()
结果如下:
4)a+:可读可写
 
# 直接朝文件中写入内容
f = open(r"G:\6Tipdm\file_read_write\yesterday4.txt","a+",encoding="utf-8")
f.write("哈哈")
f.close()

# 直接读取文件中的内容
f = open(r"G:\6Tipdm\file_read_write\yesterday4.txt","a+",encoding="utf-8")
data = f.read()
print(data)
f.close()

# 调整句柄位置后,再读取文件中的内容
f = open(r"G:\6Tipdm\file_read_write\yesterday4.txt","a+",encoding="utf-8")
f.seek(0)
data = f.read()
print(data)
f.close()
结果如下:

3.read、readline、readlines的区别

1)read()方法的使用说明
 
f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8")
data = f.read()
print(type(data))
print(data)
f.close()
结果如下:
2)readline()方法的使用说明
 
f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8")
data = f.readline()
print(type(data))
print(data)
f.close()

f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8")
for i in range(3):
    data = f.readline()
    print(data)
f.close()
结果如下:
去掉每一行末尾的换行符:
 
f = open(r"G:\6Tipdm\file_read_write\test.txt","r",encoding="utf-8")
for i in range(3):
    data = f.readline().strip()
    print(data)
f.close()
结果如下:
3)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()
结果如下:

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

1)相关说明
2)操作说明
 
f = open(r"G:\6Tipdm\file_read_write\yesterday.txt","r",encoding="utf-8")
for line in f:
    print(line.strip())
部分截图如下:
今天的文章就到这里,咋们下次再见!

👇👇各种Python案例,点击名片关注👇👇

EXCEL “统计分析” 模板一共19个,限时免费提供!


神级Excel模板【第二弹】,福利升级,限时免费下载!

【声明】内容源于网络
0
0
数据分析与统计学之美
免费领10w字"Python知识手册",共400页,后台回复“十万”领取!
内容 1080
粉丝 0
数据分析与统计学之美 免费领10w字"Python知识手册",共400页,后台回复“十万”领取!
总阅读210
粉丝0
内容1.1k