文件操作案例

前置工作

新建一个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