Python第一阶段-第八章-文件操作


8.1 文件的编码

在这里插入图片描述

在这里插入图片描述
不同的编码,将内容翻译成二进制也是不同的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2 文件的读取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 打开文件
f = open("测试.txt", 'r', encoding='UTF-8')

# 读取文件 -read()
print(f"读取10字节: {f.read(10)}")
print(f"读取全部内容:{f.read()}")

# 读取文件 -readlines()
lines = f.readlines() # 读取文件的全部行,封装到列表中
print(lines)

# 读取文件 -readline()
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f"第一行内容是:{line1}")
print(f"第二行内容是:{line2}")
print(f"第三行内容是:{line3}")

# for循环读取文件
for i in f:
    print(f"每一行内容是:{i}")

# 文件的关闭
f.close()

# with open 语法操作文件
with open("测试.txt", 'r', encoding='UTF-8') as f:
    for line in f:
        print(f"每一行内容是:{line}")

在这里插入图片描述
课后练习:单词计数
通过Windows的文本编辑器软件,将如下内容,复制并保存到:word.txt,文件可以存储在任意位置

itheima itcast python
itheima python itcast
beijing shanghai itheima
shenzhen guangzhou itheima
wuhan hangzhou itheima
zhengzhou bigdata itheima

通过文件读取操作,读取此文件,统计itheima单词出现的次数

# 0.读取文件
f = open("word.txt", "r", encoding="UTF-8")

# 方法1:
# content = f.read()
# count = content.count("itheima")
# print(f"itheima出现了 {count} 次")

# 方法2:
count = 0
for line in f:
    line = line.strip()
    # line = line.replace("\n", "")
    words = line.split(" ")
    print(words)
    for word in words:
        if word == "itheima":
            count += 1

print(f"itheima出现了 {count} 次")

# 关闭文件
f.close()


8.3 文件的写入

案例演示:

# 1. 打开文件
f = open('python.txt', 'w')

# 2.文件写入
f.write('hello world')

# 3. 内容刷新
f.flush()

注意:

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
    在这里插入图片描述
f = open("Hello.txt" , "w", encoding='UTF-8')

f.write("Hello world!!!")

# 刷新
f.flush()

f.close()
  1. 写入文件使用open函数的”w”模式进行写入
  2. 写入的方法有:
    wirte(),写入内容
    flush(),刷新内容到硬盘中
  3. 注意事项:
    • w模式,文件不存在,会创建新文件
    • w模式,文件存在,会清空原有内容
    • close()方法,带有flush()方法的功能

8.4 文件的追加

案例演示:

# 1. 打开文件,通过a模式打开即可
f = open('python.txt', 'a')

# 2.文件写入
f.write('hello world')

# 3. 内容刷新
f.flush()

注意:

  • a模式,文件不存在会创建文件
  • a模式,文件存在会在最后,追加写入文件
f = open("Hello.txt", 'a', encoding='UTF-8')

f.write("\nPython 123")

f.flush()
f.close()

8.5 文件操作综合案例

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

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

我们现在要做的就是:
读取文件
将文件写出到bill.txt.bak文件作为备份
同时,将文件内标记为测试的数据行丢弃

实现思路:
open和r模式打开一个文件对象,并读取文件
open和w模式打开另一个文件对象,用于文件写出
for循环内容,判断是否是测试不是测试就write写出,是测试就continue跳过
将2个文件对象均close()

fr = open("bill.txt", 'r', encoding='UTF-8')

fw = open("bill.txt.bak", 'w', encoding='UTF-8')

for line in fr:
    line = line.strip()
    if line.split(",")[-1] =="测试":
        continue
    fw.write(line)
    fw.write("\n")

fr.close()
fw.close()

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值