文本模式(默认)处理字符串,需指定编码(如`encoding='utf-8'`)防止乱码
**Python文件操作的核心知识点**,涵盖了文本与二进制文件的打开模式、上下文管理(`with`)、常用读写方法,以及结构化数据(CSV/JSON)的处理方式。以下是关键要点归纳:
- **文件打开模式**:
`'r'`(只读文本,默认)、`'w'`(写入,清空原内容)、`'a'`(追加)、`'rb'`/`'wb'`(二进制模式,用于图片、音频等非文本数据)。
- **`with`语句**:
自动管理文件资源,执行完代码块后**自动调用`close()`**,即使发生异常也不遗漏,是安全读写的推荐写法:
```python
with open("file.txt", "r") as f:
content = f.read()
# 此处文件已自动关闭
```
- **文本读写方法**:
- `read()`:读取全部内容为字符串;
- `readline()`:读取一行(含换行符`\n`);
- `readlines()`:返回每行作为元素的列表(含`\n`);
- `write(s)`:写入字符串`s`(不自动换行);
- `writelines(seq)`:写入字符串序列(如列表),**不自动添加换行符**,需手动添加`\n`。
- **CSV处理(`csv`模块)**:
推荐使用`csv.reader`/`csv.writer`或更高级的`csv.DictReader`/`csv.DictWriter`,避免手动解析逗号或引号带来的错误。示例:
```python
import csv
with open("data.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
print(row) # 每行为字符串列表
```
- **JSON序列化**:
- `json.dumps(obj)`:将Python对象(如字典、列表)**转为JSON字符串**;
- `json.loads(s)`:将JSON字符串**解析为Python对象**;
- 配合文件使用时常用`json.dump(obj, file)`和`json.load(file)`直接读写文件。
✅ 小贴士:
- 文本模式(默认)处理字符串,需指定编码(如`encoding='utf-8'`)防止乱码;
- 二进制模式不涉及编码,`bytes`类型读写,适用于所有文件类型;
- JSON仅支持基础类型(`dict`, `list`, `str`, `int`, `float`, `bool`, `None`),不支持`datetime`、自定义类等,需自定义`default`参数或预处理。
相关推荐
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
主要介绍了Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
eclipse默认编码GBK改为UTF-8
NULL 博文链接:https://nxdjava.iteye.com/blog/2406168
pycharm设置默认的UTF-8编码模式的方法详解
主要介绍了pycharm设置默认的UTF-8编码模式,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
VB.NET读取文本(解决乱码)
VB.NET读取文本(解决乱码),实用性代码。
IDEA中Tomcat在控制台乱码问题及IDEA编码设置UTF-8的方法
主要介绍了IDEA中Tomcat在控制台乱码问题及IDEA编码设置UTF-8的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


