跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 文件操作基础:模式、读写与指针控制

Python 文件操作核心在于理解打开模式与读写方法。常见模式包括只读 r、写入 w、追加 a 及二进制 b 等,组合模式如 r+ 支持读写但需注意截断风险。文件对象提供 readline、read、write 等方法,配合 tell 和 seek 可精准定位指针位置。实际开发中推荐结合 with 语句管理资源,避免文件未关闭导致的异常。

LinuxPan发布于 2016/4/29更新于 2026/6/1422 浏览
Python 文件操作基础:模式、读写与指针控制

文件打开与模式选择

在 Python 中,open() 是最基础的入口函数。选择合适的 mode 决定了后续操作的权限与行为。

常用模式说明
  • r: 只读模式(默认)。如果文件不存在会报错。
  • w: 写入模式。若文件存在则清空内容,不存在则新建。
  • a: 追加模式。写入内容会自动添加到文件末尾,不会覆盖原有数据。
  • b: 二进制模式。通常与上述模式组合,如 rb、wb。
  • t: 文本模式(默认)。
  • +: 更新模式,允许同时读写。
混合模式注意
  • a+: 可读写,但写入操作始终发生在文件尾部。
  • r+: 可读写,从文件开头开始。调用 f.seek(0) 后写入会覆盖原内容。
  • w+: 可读写,但打开时会立即清空文件内容,需谨慎使用。

文件对象方法与属性

文件对象(File Object)提供了丰富的接口来处理数据流。

# 读取单行
s = f.readline([size])
# 读取所有行返回列表
l = f.readlines([size])
# 读取指定大小字节
s = f.read([size])
# 写入字符串
f.write(s)
# 写入列表中的多行
f.writelines(l)

此外,还有几个关键属性与方法用于状态管理和指针控制:

  • f.closed: 检查文件是否已关闭。
  • pos = f.tell(): 获取当前文件指针位置。
  • f.flush(): 强制将缓冲区内容写入磁盘。
  • f.seek(offset, from_what): 移动文件指针。

其中 seek 的 from_what 参数有三种取值:

  • 0: 文件开头(默认)
  • 1: 当前位置
  • 2: 文件末尾

例如,跳转到距离文件末尾前 3 个字节的位置:

f.seek(-3, 2)   # Go to the 3rd byte before the end

在实际工程中,为了安全起见,建议始终使用 with 语句来管理文件资源,这样即使发生异常也能自动关闭文件。

目录

  1. 文件打开与模式选择
  2. 常用模式说明
  3. 混合模式注意
  4. 文件对象方法与属性
  5. 读取单行
  6. 读取所有行返回列表
  7. 读取指定大小字节
  8. 写入字符串
  9. 写入列表中的多行
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 前端工程师 2025 核心技能指南
  • Windows 系统安装与配置 Neo4j 图数据库指南
  • 法律领域自然语言处理(NLP)应用与实战
  • 手搓简易 Linux 进程池:基于管道的任务分发系统实现
  • ANSYS Fluent 2026 R1 新功能:AI 如何重塑汽车风阻优化流程
  • 法奥机器人 ROS2 开发环境搭建指南
  • Scala 流程控制:分支与循环
  • AI 时代技术民主化:文科生为何成最大受益者
  • C++ 从零实现 TCP Socket 网络工具实战
  • Linux 互斥锁详解:临界区保护与多线程协作
  • 大模型高效微调 LoRA 原理详解与训练过程分析
  • 麒麟 Wine 助手:利用 AI 自动配置 Windows 应用
  • Python 编程入门教程:从零基础到高级应用详解
  • Cursor Chat Browser:管理 AI 聊天历史的 Web 应用
  • SQL 性能优化:连接条件下推技术原理与实践
  • SenseVoiceSmall 语音识别 WebUI 快速部署与使用指南
  • DevEco Studio 云函数开发、调试与部署指南
  • VSCode Java 项目 JDK 配置与版本切换指南
  • Git 本地身份配置:用户名与邮箱设置详解
  • 豆包 Seedream 4.0 多图融合技术解析与实战测评

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online