当前位置: 首页 > news >正文

python的文件操作

使用场景

1. 需要读取文本文件

- 一般来说是txt后缀的,但是有没有后缀都可以

- 可以直接用文本编辑器打开,查看内容

2. 需要读取二进制文件

- 需要特定的解析工具,比如:视频,音频,pdf等等

- 用文本编辑器打开,是乱码

文本文件操作的 3 中模式

读(mode= "r")、写(mode= "w")、追加(mode= "a")

# 文件/流的操作:1,打开(连上);2,增删改查;3,关闭(断开) f = open(file="./test.txt", mode="r", encoding="utf8") # 读取内容 f.read() # 关闭文件 f.close()
# 文件/流的操作:1,打开(连上);2,查;3,关闭(断开) with open("test.txt", "r", encoding="utf8") as f: for line in f: real_line = line.strip() if real_line: print(real_line)
# 文件/流的操作:1,打开(连上);2,写;3,关闭(断开) with open("test.txt", "w", encoding="utf8") as f: f.write("第一行内容\n") f.write("第二行内容\n")
追加
# 文件/流的操作:1,打开(连上);2,追加;3,关闭(断开) with open("test.txt", "a", encoding="utf8") as f: f.write("追加一行\n")

读一个文件,写入另外一个新文件

# 读test.txt,过滤空行,写入out.txt with open("test.txt", "r", encoding="utf8") as fr, open("out.txt", "w", encoding="utf8") as fw: for line in fr: s = line.strip() if s: print(s) fw.write(s + "\n")

二进制文件操作的4 中模式

  • rb:只读二进制
  • wb:覆盖写二进制(清空原有)
  • ab:追加二进制(尾部添加)
  • r+b/rb+:可读可写二进制(修改、插入、删除必备,不清空文件)

二进制读写全部操作字节串 bytes,不能直接 str,字符串要encode(),字节要decode()

覆盖写二进制(清空原有)
# 写入字节,encode字符串转bytes data = "测试二进制内容\n第二行".encode("utf-8") with open("data.bin", "wb") as f: f.write(data)
只读二进制
with open("data.bin", "rb") as f: # 一次性读取全部字节 content = f.read() print(content) text = content.decode("utf-8") print(text)
追加二进制(尾部添加)
add_data = "\n追加的字节".encode("utf-8") with open("data.bin", "ab") as f: f.write(add_data)
可读可写二进制

覆盖修改指定位置内容(二进制文件一般只能覆盖替换指定内容,修改或删除中间内容必须全部读出修改,然后清空文件写入)

关键文件指针函数

  • f.seek(offset, whence)移动文件指针
    • whence=0:从头偏移
    • whence=1:从当前位置偏移(rb + 下可用)
    • whence=2:从文件末尾偏移
  • f.tell()获取当前指针位置
# 覆盖修改指定位置内容 # data.bin 内容:b'abc123xyz' # 把 123 改成 456(偏移 3 开始,覆盖 3 字节) with open("data.bin", "rb+") as f: f.seek(3, 0) # 指针移到第3个字节 f.write(b"456")
大文件分块读取
CHUNK_SIZE = 1024 with open("large.bin", "rb") as f: while chunk := f.read(CHUNK_SIZE): # 逐块处理字节 pass
http://www.jsqmd.com/news/1244347/

相关文章:

  • PCS热管理设计原理与散热仿真分析方法
  • Redis何时会成为“拖油瓶“?深度解析Redis拖垮应用程序的十大致命场景
  • 2026年7月欧米茄**杭州客服热线电话与地址网点最新公告 - 欧米茄服务中心
  • 校服多品类混产痛点解析、智能化改造路径与2026贴袋设备权威排名测评
  • 有了它,让deepseek更方便!
  • 2026日照海边酒店哪家好 高性价比住宿推荐 - 谁都没有我好看
  • 2026 年新消息:戚墅堰值得关注的阳台漏水补漏公司联系方式,别再等了!阳台漏水,这5招让你省下几千块维修费-上上签防水 - 领域鉴赏官
  • 欧米茄无锡**2026年7月最新客户服务网点地址及售后热线公告 - 欧米茄官方服务中心
  • 150、【Agent】【OpenCode】启动分析(IoC)
  • openclaw中文社区国产推荐:2026年值得关注的国内AI智能体产品一览
  • 提示词权重分配全解析,深度解读Top 3企业级排序模型与AB测试验证数据
  • 2026千问无门槛优惠券激活码(亲测可用)
  • 雅典**换电池价格查询|服务热线及全部维修详细地址**信息公告(2026年7月最新) - 亨得利官方服务中心
  • 2026年7月最新格拉苏蒂宁波银泰百货维修保养服务电话 - 亨得利钟表维修中心
  • Beyond Compare 4合法授权与高效使用指南
  • 2026年7月最新泰格豪雅大连大悦春风里维修保养服务电话 - 亨得利钟表维修中心
  • 【广州市】防水补漏五星商家推荐|一级资质**认证 协会推荐质保无忧.doc - 资讯报道
  • AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析
  • 四大原则深度解析:从Karpathy观察中掌握LLM编码专家的终极指南
  • 2026日照万平口附近海边酒店推荐精选合集 - 谁都没有我好看
  • 5分钟掌握百度网盘解析工具:告别限速困扰的终极解决方案
  • AI写作金句植入实战手册(附27个行业高转化金句模板)
  • 提升.NET API安全性:Boxed.AspNetCore.Swagger认证授权最佳实践
  • 亨得利盐城维修点在哪里?手表维修保养地址指南**公示(2026年7月最新) - 亨得利官方
  • 帝舵佛山**网点地址更新:2026年7月售后热线电话与服务客户指南 - 帝舵中国官方服务中心
  • 深入解析以太网DMA控制器:描述符机制与性能优化实战
  • 2026年徐州电动门厂家:电动伸缩门、段滑门、悬浮门及车牌识别系统专业供应链解析 - 品牌发掘
  • 2026年7月最新雷达龙湖青岛胶州天街维修保养服务电话 - 亨得利钟表维修中心
  • AI开发工具生态:CLI、插件与扩展的技术实践
  • 智浦芯联 ITE99A0 3.5-100V/150mA 高压线性稳压器 SOT23/SOT23-3L/SOT23-5L/ESOP-8L 技术解析