前置工作
新建一个data.txt 内容为
张三 18 男
李四 20 女
王五 19 男
赵六 21 女
案例
案例1:一次性读取全部内容
with open("test.txt","r",encoding="utf-8") as f:
content = f.read()
print(f"全部内容\n{content}")
案例2:逐行读取,自带\n
with open("test.txt","r",encoding="utf-8") as f:
while True:
line = f.readline()
# 读到line=''就退出
if not line:
break
print(line.strip())
# 如果文件内容是这样的话,也不会退出,因为空行 = "\n" 会继续执行循环
张三 18 男
李四 20 女
王五 19 男
赵六 21 女
案例3:readlines()读取所有行,返回列表,自带换行
with open("test.txt","r",encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
print(line.strip())
案例4:文件写入+追加写入
覆盖写入
with open("123.txt","w",encoding="utf-8") as f:
f.write("hello\n")
f.write("world")
追加写入
with open("123.txt","a",encoding="utf-8") as f:
f.write("hello\n")
f.write("world")
案例5:统计男生和女生人数(综合案例)
使用readlines() 做数据处理非常的典型
首先查看文件里面的内容数据,发现只有第三列是关于性别的
张三 18 男
李四 20 女
王五 19 男
赵女六 21 女
b = 0
g = 0
with open("test.txt","r",encoding="utf-8") as f:
line = f.readlines()
# i 里面存储的是["data1/n","data2/n","data2"]
for i in line:
# 将字符串进行删除换行,按照空格进行切割,返回一个列表
l_zifu = i.strip().split()
# 获取到性别这一栏的数据了
sex = l_zifu[-1]
if sex == "男":
b += 1
elif sex == "女":
g += 1
print(f"男的人数为:{b},女的人数为{g}")
文章摘自:https://www.cnblogs.com/qylogs/p/20202810
