案例学习引自黑马程序员,基于文件操作知识,实现txt文件过滤数据和备份。

首先在电脑D盘根目录下新建一个账单文件“bill.txt”,复制粘贴如下内容进去保存:

name,date,money,type,remarks
粥饼轮,2022-01-01,100000,消费,正式
粥饼轮,2022-01-02,300000,收入,正式
粥饼轮,2022-01-03,100000,消费,测试
菜虚鲲,2022-01-01,300000,收入,正式
菜虚鲲,2022-01-02,100000,消费,测试
菜虚鲲,2022-01-03,100000,消费,正式
菜虚鲲,2022-01-04,100000,消费,测试
菜虚鲲,2022-01-05,500000,收入,正式
蟹广捆,2022-01-01,100000,消费,正式
蟹广捆,2022-01-02,500000,收入,正式
蟹广捆,2022-01-03,900000,收入,测试
夏洛特,2022-01-01,500000,消费,正式
夏洛特,2022-01-02,300000,消费,测试
夏洛特,2022-01-03,950000,收入,正式
马冬梅,2022-01-01,300000,消费,测试
马冬梅,2022-01-02,100000,消费,正式
马冬梅,2022-01-03,300000,消费,正式

需求:

读取文件,将文件写出到bill.txt.bak文件作为备份的同时,将标记为测试的数据行丢弃。

提示:

open和r模式打开一个文件对象,并读取文件

open和w模式打开另一个文件对象,用于文件写出

for循环内容,判断是否是测试不是测试就write写出,是测试就continue跳过

将2个文件对象均close()

打开pycharm,敲如下代码:

# 以只读形式打开bill.txt文件
fr = open("D:\\bill.txt", "r", encoding="UTF-8")
# 以写入形式新建bill.txt,bak文件
fw = open("D:\\bill.txt.bak", "w", encoding="UTF-8")
# for循环读取fr文件
for line in fr:
# 使用.strip()删除每行的空格和换行符
    line = line.strip()
# 使用.split()以逗号分隔每行,判断第4个位置值是否'测试',是的话则continue跳过
    if line.split(",")[4] == '测试':
        continue
# 否则将该行写入fw文件
    fw.write(line)
# 不要忘记追加写入换行符
    fw.write('\n')
# 最后关闭两个文件
fr.close()
fw.close()

运行结果如下:
Python文件操作综合案例学习:实现文件备份.JPG