python文件操作

文件操作概述

python中读写文件的操作:使用open()函数打开一个文件,获取到文件句柄,再通过文件句柄进行各种操作;根据打开方式的不同能够执行的操作也会有所差异

  • r:read 只读模式
f = open("a.txt", mode='r', encoding='utf-8')
# 将文件内容直接全部读出来 缺点:内存容易炸
print(f.read())
# 一行一行读取
print(f.readline().strip()) # strip()去掉换行符\n

# for循环读取
for line in f:
	print(line.strip())

# 前面一行数据单独读取,后面书使用for循环
firstLine = f.readline()
print(firstLine.strip())
for line in f:
    print(line.strip())
  • w:只写模式 重新创建文件
f = open("a.txt", mode='w', encoding='utf-8')
f.write("我的世界太过安静,静得可以听见自己心跳的声音;")
f.write("\n")
f.write("心房的血液慢慢流回心室,如此这般的轮回。")
  • a:append 追加写模式;不会重新创建文件,如果文件不存在,则创建文件
f = open("a.txt", mode='a', encoding='utf-8')
f.write("\n走着走着, 就散了, 回忆都淡了;")
f.write("\n")
f.write("看着看着,就累了,星光也暗了;")
  • b:bytes 二进制模式,一般处理非文本文件,不能指定encoding
  1. rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
  2. wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
f1 = open("picture/picture.jpg", mode="rb")
f2 = open("newPicture/picture.jpg", mode="wb")

for line in f1:
    f2.write(line)
  • +:打开一个文件进行更新(可读可写) ------- 不提倡
  • 省略f.close()的写法
with open("a.txt", mode="r", encoding="utf-8") as f1:
    pass  # 语句执行完之后,会自动执行close()操作

文件修改操作

1.读取文件中的内容,将需要修改的内容进行修改
2.将修改后的内容写到一个新文件中
3.删除原来的文件(借助os模块),把新文件重命名为原来的文件名

import os
with open("a.txt", mode="r", encoding="utf-8") as f1, \
     open("a_副本.txt", mode="w", encoding="utf-8") as f2:
    for line in f1:
        if "就" in line:
            newLine = line.replace("就", "你好呀")
        f2.write(newLine)
os.remove("a.txt")
os.rename("a_副本.txt", "a.txt")

读取规则的文件

文件格式如下:
在这里插入图片描述

f = open("a.txt", mode="r", encoding="utf-8")
# 将头目录处理成列表
head_list = f.readline().split()
lst = []
# 每读一行,分割成列表
for line in f:
    line = line.strip()
    data_list = line.split()
    dic = {}
    # 根据下表进行key:value匹配
    for i in range(len(data_list)):
        dic[head_list[i]] = data_list[i]
    lst.append(dic)
f.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值