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

(九)Python高级应用-文件与IO操作

概览

  • 文本/二进制文件读写
  • JSON/CSV/Excel数据处理
  • 上下文管理器(with语句)
  • 目录遍历与文件压缩

在编程世界中,输入/输出(I/O)操作是与外部环境(如文件系统、网络、数据库)进行数据交换的基石。Python 以其简洁优雅的语法,提供了一套强大而灵活的工具来处理各种 I/O 任务。本文将深入探讨 Python 在文件处理方面的高级应用,涵盖文本与二进制文件、常见数据格式的处理、关键的上下文管理器,以及目录操作与文件压缩。

1. 文本文件与二进制文件的读写

核心概念:文本 vs. 二进制

  • 文本文件: 由字符序列组成,通常是人类可读的(如.txt,.py,.html)。处理文本文件时,Python 会涉及编码(如 UTF-8, GBK)和解码,将字符转换为字节序列或反之。默认编码通常是 UTF-8。

  • 二进制文件: 由字节序列组成,内容依特定格式定义(如图片.jpg, 音频.mp3, 任何其他格式)。处理二进制文件时,我们直接操作字节,不进行编码转换。

基础操作:

open()函数

Python 使用内置的open()函数来创建文件对象。

file = open(filename, mode, encoding)

filename: 文件路径。
mode: 打开模式,决定了文件如何被处理。
‘r’: 只读(文本模式,默认)
‘w’: 只写。如果文件存在则清空,不存在则创建。
‘a’: 追加。将数据写入文件末尾。
‘x’: 独占创建。如果文件已存在则失败。
‘b’: 二进制模式。需与其他模式组合使用,如’rb’或’wb’。
‘t’: 文本模式(默认)。
‘+’: 更新(读写)。

代码示例与解释

文本文件读写

# 1. 写入文本文件
# 使用 'w' 模式,指定编码为 UTF-8
with open('example.txt', 'w', encoding='utf-8') as f:f.write('你好,世界!\n')  # 写入一行f.writelines(['这是第二行。\n', '这是第三行。\n']) # 写入多行# 2. 读取文本文件
with open('example.txt', 'r', encoding='utf-8') as f:content = f.read()       # 一次性读取全部内容print("read():\n", content)with open('example.txt', 'r', encoding='utf-8') as f:line = f.readline()      # 读取一行(包括换行符)print("readline():\n", repr(line)) # 使用 repr 显示换行符with open('example.txt', 'r', encoding='utf-8') as f:lines = f.readlines()    # 读取所有行,返回一个列表print("readlines():\n", lines)# 3. 高效逐行处理(推荐用于大文件)
# 文件对象本身是一个可迭代对象
with open('example.txt', 'r', encoding='utf-8') as f:for line_num, line in enumerate(f, 1):print(f"Line {line_num}</

文章转载自:

http://MRJraRPw.xmkdm.cn
http://g3HyM6FS.xmkdm.cn
http://S5p8gdbs.xmkdm.cn
http://xWllOuTP.xmkdm.cn
http://IxW2IbFC.xmkdm.cn
http://M8XjqbWh.xmkdm.cn
http://fxhEOPmW.xmkdm.cn
http://bb3jpRir.xmkdm.cn
http://PNUH2UH6.xmkdm.cn
http://FBNPdlkN.xmkdm.cn
http://MDjDJN3G.xmkdm.cn
http://hImnNFmo.xmkdm.cn
http://Ub5O8N82.xmkdm.cn
http://au10REnG.xmkdm.cn
http://9uTieK4U.xmkdm.cn
http://3Cm7zGLQ.xmkdm.cn
http://qShnmpVQ.xmkdm.cn
http://ptISOcx2.xmkdm.cn
http://NOa2jmDO.xmkdm.cn
http://3eXEyODN.xmkdm.cn
http://BcSTGDuD.xmkdm.cn
http://Vev1ebZ9.xmkdm.cn
http://aKQ7WYKz.xmkdm.cn
http://MKOZ4Dcj.xmkdm.cn
http://kkbKOei7.xmkdm.cn
http://TXsXQ4GX.xmkdm.cn
http://yOSBtsvr.xmkdm.cn
http://5HkSHH3q.xmkdm.cn
http://vPVxMWRl.xmkdm.cn
http://IVIIq1vr.xmkdm.cn
http://www.dtcms.com/a/385563.html

相关文章:

  • FFmpeg06:SDL渲染
  • javadoc命令 错误: 编码 GBK 的不可映射字符 (0x80)
  • 【面试场景题】自增主键、UUID、雪花算法都有什么问题
  • 数据整理器(Data Collators)总结 (95)
  • 代码评价:std::shared_ptr用法分析
  • 23种设计模式案例
  • AI Agent案例与实践全解析:字节智能运维
  • MyBatis-Plus分页插件实现导致total为0问题
  • S32DS仿真环境问题
  • 黑马JavaWeb+AI笔记 Day07 Web后端实战(部门管理模块)
  • 【AI开发】【前后端全栈】[特殊字符] AI 时代的快速开发思维
  • kimi-k2论文阅读笔记
  • [SC]一个使用前向声明的SystemC项目例子
  • Gunicorn 部署与调优全指南(2025 版)
  • 第二十一篇|新宿平和日本语学校的结构化解读:费用函数、文化网络与AI教育建模
  • 数据结构(C语言篇):(十五)二叉树OJ题
  • RIFE.py代码学习 自学
  • Gateway-路由-规则配置
  • 低端影视官网入口 - 免费看影视资源网站|网页版|电脑版地址
  • 【Python3教程】Python3高级篇之日期与时间
  • 计算机网络——传输层(25王道最新版)
  • 5-14 forEach-数组简易循环(实例:数组的汇总)
  • 【智能体】rStar2-Agent
  • ego(5)---Astar绕障
  • UE5C++编译遇到MSB3073
  • 记一次JS逆向学习
  • 【PyTorch】单目标检测
  • RabbitMQ—基础篇
  • 介绍一下 Test-Time Training 技术
  • 【LangChain指南】Document loaders