Skip to content

第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中进行文件读写、序列化和反序列化以及操作系统交互,对于开发人工智能应用中的数据处理功能至关重要。