尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

python的文件操作

python的文件操作
📅 发布时间:2026/7/23 0:06:51

使用场景

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

相关新闻

  • 校服多品类混产痛点解析、智能化改造路径与2026贴袋设备权威排名测评
  • 150、【Agent】【OpenCode】启动分析(IoC)
  • 欧米茄无锡**2026年7月最新客户服务网点地址及售后热线公告 - 欧米茄官方服务中心

最新新闻

  • 河南移动宽带测速
  • 【2024网络运维生死线】:AI实时流分析工具如何将MTTR从47分钟压缩至8.3秒?
  • 2026 年 7 月新发布:新郑比较好的天然泰山石工厂综合实力解析,揭秘泰山石的秘密:它如何颠覆你的家居审美?-界石景观石 - 行业推荐官[官方】--
  • 2026年天津GEO优化公司哪家好 正规排行参考 - 起跑123
  • 劳力士服务项目及价格查询|维修地址与售后服务电话权威信息通知(2026年7月最新) - 劳力士服务中心
  • 2026山东综评培训机构哪家好 选报参考维度全梳理 - 起跑123

日新闻

  • 亨得利盐城维修点在哪里?手表维修保养地址指南**公示(2026年7月最新) - 亨得利官方
  • 提升.NET API安全性:Boxed.AspNetCore.Swagger认证授权最佳实践
  • 帝舵佛山**网点地址更新:2026年7月售后热线电话与服务客户指南 - 帝舵中国官方服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号