Python 文件 I/O:安全地读写文件

了解如何在 Python 中读取和写入文件。掌握 open()、read()、write() 和上下文管理器,以安全地处理文件操作,而不会造成资源泄漏。

在编辑器中尝试

概述

文件输入/输出 (I/O) 是一项基本功能,允许 Python 程序与计算机的持久存储进行交互。无论您是构建简单的记录器、读取配置文件还是处理海量数据数组,您的程序都需要一种可靠的方式来打开、读取、写入和关闭磁盘上的文件。 Python 提供了干净的内置函数,使文件系统交互变得简单且跨平台。

Python 中文件访问的主要工具是内置的“open()”函数。该函数接受文件路径和模式字符串。模式决定如何访问文件:“r”表示读取,“w”表示写入(覆盖文件),“a”表示将内容附加到末尾,“b”表示二进制模式(对于图像或序列化数据有用)。至关重要的是,每当您打开文件时,它都会消耗操作系统句柄。如果无法关闭文件,可能会导致内存泄漏或文件锁定问题。

为了保证文件始终正确关闭,Python 开发人员使用“with”语句来实现上下文管理器。当使用 with open(...) as file: 时,一旦代码块退出,Python 就会自动关闭文件句柄,即使内部发生意外异常。可以使用“for line in file:”逐行读取数据,也可以通过“.read()”、“.readline()”或“.readlines()”一次性读取数据。写入文本通过“.write()”或“.writelines()”处理,从而实现流畅、安全、高效的文件操作。

代码和执行输出

将问候语写入临时文本文件并使用安全上下文管理器逐行读回。

file_operations.py
在编辑器中尝试
filename = "sample.txt"

# Writing to a file
with open(filename, "w") as file:
    file.write("Hello, Python coder!\n")
    file.write("This is a line in a file.\n")
    file.write("File I/O is simple.\n")

print("File written successfully.\n--- Reading File ---")

# Reading from a file line by line
with open(filename, "r") as file:
    for index, line in enumerate(file, 1):
        print(f"Line {index}: {line.strip()}")
端子输出
File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.

逐步实施

  • 记录错误和程序输出
  • 读取配置文件(例如 .env 或 config.txt)
  • 保存用户报告或导出的分析摘要

常见问题解答

写入模式和追加模式有什么区别?

写入模式('w')将文件截断为零长度,在写入之前删除任何现有内容。追加模式('a')将光标置于末尾,添加新文本而不删除现有内容。

为什么要使用 with 语句?

with 语句充当上下文管理器,确保文件自动关闭,从而防止内存泄漏和锁定文件错误。

相关主题

推荐的 Python 资源

通过相关的交互式教程、备忘单和代码比较来扩展您的知识。