Python文件操作

目录​​​​​​​

1. 文件编码

2. 文件操作

2.1 文件读取

2.1.1 概述

2.1.2 案例

2.2 文件的写入

2.3 文件的追加

2.4 综合案例


1. 文件编码

什么是编码?

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

为什么使用编码?

  • 将可识别的内容翻译为保存在计算机中的二进制数据需要编码。
  • 将保存在计算机中的二进制数据反向翻译为可识别的内容也需要编码。

2. 文件操作

2.1 文件读取

2.1.1 概述

1.操作文件需要通过open函数打开文件得到文件对象。

2.文件对象有如下读取方法:

3.文件读取完成后,要使用文件对象.close()方法关闭文件对象,否则文件会被程序一直占用。

2.1.2 案例

通过文件读取操作,读取word.txt文件,统计itheima单词出现的次数。

# 打开文件
f = open("word.txt","r",encoding="utf-8")

'''
方式1:读取全部内容,通过字符串的count方法统计
'''
content = f.read()
count = content.count("itheima")
print(f"itheima单词出现的次数是:{count}")

# 关闭文件
f.close()
# 打开文件
f = open("word.txt","r",encoding="utf-8")

'''
方式2:一行行读取,一行行统计
'''

# 计数
count = 0

# for循环读取文件行
for line in f:
    word_list = line.strip().split(" ") #strip方法用于去除开头和结尾的空格以及换行符
    # word_list = line.split("\n")[0].split(" ")
    for word in word_list:
        if word == "itheima":
            count += 1
print(f"itheima单词出现的次数是:{count}")

# 关闭文件
f.close()

2.2 文件的写入

1.写入文件使用open方法的“w”模式进行写入。

2.写入的方法有:

  • write() ,写入内容。
  • flush(),刷新内容到硬盘中。

3.注意:

  • w模式,文件不存在,会创建新文件。
  • w模式,文件存在,会清空原有内容
  • close()方法,带有flush()方法的功能。
# 打开文件(如文件不存在则会自动创建)
f = open("test2.txt","w",encoding="utf-8")

# write方法   将内容写入到内存中
f.write("hello world!!!")

# flush刷新   将内存中的内容写入到硬盘的文件中
# f.flush()

# 关闭文件  内置了flush方法
f.close()

# 打开文件(如文件不存在则会自动创建)
f = open("test2.txt","w",encoding="utf-8")

# write方法   覆盖前一次写入的内容
f.write("hello python!!!")

# 关闭文件
f.close()

test2.txt

2.3 文件的追加

1.追加写入文件使用open方法的“a”模式进行写入。

2.追加写入的方法有(和w模式一致):

  • write() ,写入内容。
  • flush(),刷新内容到硬盘中。

3.注意:

  • w模式,文件不存在,会创建新文件。
  • w模式,文件存在,会在原有内容后面继续写入
  • close()方法,带有flush()方法的功能。
# 打开文件(如文件不存在则会自动创建)
f = open("test3.txt","a",encoding="utf-8")

# write方法   将内容写入文件
f.write("hello world!!!")

# 关闭文件
f.close()

# 打开文件(如文件不存在则会自动创建)
f = open("test3.txt","a",encoding="utf-8")

# write方法   将内容追加写入文件
f.write("\nhello python!!!")

# 关闭文件
f.close()

2.4 综合案例

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

要求:

  • 读取文件
  • 将文件内标记为正式的数据行写入到bill.txt.bak文件作为备份
# 打开bill.txt文件
fr = open("F:/bill.txt","r",encoding="utf-8")

# 打开bill.txt.bak文件
fw = open("F:/bill.txt.bak","w",encoding="utf-8")

# for循环读取文件行
for line in fr:
    # strip方法用于去除开头和结尾的空格以及换行符
    line = line.strip()
    if line.split(",")[4] == "正式":
        fw.write(line)
        # 手动写入之前去掉的换行符
        fw.write("\n")

# 关闭文件
fr.close()
fw.close()

bill.txt.bak

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值