文本模式(默认)处理字符串,需指定编码(如`encoding='utf-8'`)防止乱码

Bol5261 CSDN会员 Bol5261 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

**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`参数或预处理。

 

...全文
评论
收藏 已收藏
分享
返回顶部
Bol5261 CSDN会员
Bol5261 新星创作者: Java技术领域 新星创作者: Java技术领域优质创作者: 学术研究与理论基础技术领域 优质创作者: 学术研究与理论基础技术领域
Borter 9 成员 1,312 内容