Appearance
第5章:文件和输入输出
文件处理和输入输出(I/O)操作是编程中的基础技能,尤其在人工智能领域,经常需要处理大量数据,包括读取数据文件、保存模型参数和日志记录等。本章将介绍Python中文件操作和I/O的基本概念和技巧。
5.1 文件操作基础
5.1.1 打开和关闭文件
- open函数:用于打开文件,并返回文件对象。
- close方法:用于关闭文件,释放系统资源。
5.1.2 文件模式
- 读取模式('r'):默认模式,用于读取文件。
- 写入模式('w'):创建新文件或覆盖现有文件。
- 追加模式('a'):向现有文件末尾追加内容。
- 二进制模式('b'):以二进制格式读写文件。
5.2 读取和写入文件
5.2.1 读取文件
- read方法:读取文件的全部内容。
- readline方法:读取文件的一行。
- readlines方法:读取文件的所有行,并返回列表。
5.2.2 写入文件
- write方法:将字符串写入文件。
- writelines方法:将字符串列表写入文件。
5.3 文件上下文管理器
5.3.1 with语句
- 自动管理文件:确保文件正确关闭,即使发生异常。
- 示例:python
with open('file.txt', 'r') as file: content = file.read()
5.4 序列化和反序列化
5.4.1 JSON
- json模块:用于处理JSON数据格式。
- 序列化:将Python对象转换为JSON字符串。
- 反序列化:将JSON字符串转换为Python对象。
5.4.2 CSV
- csv模块:用于读写CSV文件。
- DictReader和DictWriter:方便地处理列名为字典键的CSV文件。
5.5 处理大型文件
5.5.1 分块读取
- 分块读取:适合处理大文件,避免内存溢出。
- 示例:python
with open('large_file.txt', 'r') as file: while True: chunk = file.read(1024) # 读取1024字节 if not chunk: break process(chunk)
5.6 操作系统交互
5.6.1 os模块
- 路径操作:如os.path.join、os.path.exists。
- 目录操作:如os.mkdir、os.rmdir。
5.6.2 系统命令
- subprocess模块:执行外部命令和程序。
- 示例:python
import subprocess result = subprocess.run(['ls', '-l'], capture_output=True, text=True) print(result.stdout)
5.7 标准输入输出
5.7.1 input函数
- 获取用户输入:从标准输入读取数据。
5.7.2 print函数
- 输出到标准输出:打印信息到控制台。
5.8 结论
文件和I/O操作是数据处理不可或缺的一部分。掌握如何在Python中进行文件读写、序列化和反序列化以及操作系统交互,对于开发人工智能应用中的数据处理功能至关重要。
