06_Python文件操作

本文介绍了文件编码与读取操作,特别是UTF-8编码。详细展示了Python中如何打开、读取和写入文件,包括使用r,w,a等不同模式。文章通过一个实例,演示了如何读取文件内容,创建备份文件,并过滤出特定条件(非‘测试’类型)的数据行。
摘要由CSDN通过智能技术生成

文件编码

编码:一种规则集合,记录了内容和二进制间进行相互转换的逻辑。编码有许多中,我们最常用的是UTF-8编码。

文件读取操作

操作

功能

文件对象 = open(file, mode, encoding)

打开文件获得文件对象

文件对象.read(num)

读取指定长度字节

不指定num读取文件全部

文件对象.readline()

读取一行

文件对象.readlines()

读取全部行,得到列表

for line in 文件对象

for循环文件行,一次循环得到一行数据

文件对象.close()

关闭文件对象

with open() as f

通过with open语法打开文件,可以自动关闭

mode常用的三种基础访问模式

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。

如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。

如果该文件不存在,创建新文件进行写入。

文件写入操作

•文件如果不存在,使用”w”模式,会创建新文件

•文件如果存在,使用”w”模式,会将原有内容清空

  • close()方法,带有flush()方法的功能

文件追加写入操作

  • a模式,文件不存在会创建文件

  • a模式,文件存在会在最后,追加写入文件

  • 可以使用”\n”来写出换行符

文件备份案例

需求:有一份账单文件,记录了消费收入的具体记录,内容如下:

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文件

我们现在要做的就是:

1.读取文件

2.将文件写出到bill.txt.bak文件作为备份

3.同时,将文件内标记为测试的数据行丢弃

"""
演示文件操作综合案例:文件备份
"""

# 打开文件得到文件对象,准备读取
fr = open("D:/bill.txt", "r", encoding="UTF-8")
# 打开文件得到文件对象,准备写入
fw = open("D:/bill.txt.bak", "w", encoding="UTF-8")
# for循环读取文件
for line in fr:
    line = line.strip()
    # 判断内容,将满足的内容写出
    if line.split(",")[4] == "测试":
        continue        # continue进入下一次循环,这一次后面的内容就跳过了
    # 将内容写出去
    fw.write(line)
    # 由于前面对内容进行了strip()的操作,所以要手动的写出换行符
    fw.write("\n")

# close2个文件对象
fr.close()
fw.close()      # 写出文件调用close()会自动flush()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值