22.1 文件的打开(掌握)

在 Python 中,文件可以通过内置的 open() 函数来打开。open() 函数接受两个主要参数:文件路径和文件模式。

基本语法

file = open("文件路径", "模式")

文件模式

常用的文件模式如下:

模式含义
'r'读取模式(默认值),文件必须存在,读取内容。
'w'写入模式,若文件已存在则清空文件,若不存在则创建新文件。
'a'追加模式,在文件末尾添加内容。若文件不存在则创建新文件。
'b'以二进制模式读写文件,用 'rb''wb' 等组合形式。
'r+'读写模式,可以同时读取和写入。
'w+'读写模式,文件存在则清空,不存在则创建。
'a+'读写模式,在文件末尾追加内容,不存在则创建。

示例:打开文件进行读取

file = open("example.txt", "r")
# 执行文件读取或其他操作
file.close()  # 关闭文件

22.2 文件的读取(掌握)

Python 提供多种方法来读取文件内容。常用的读取方法有 read()readline()readlines()

22.2.1 read() 读取整个文件内容

  • 示例

    file = open("example.txt", "r")
    content = file.read()
    print(content)  # 输出整个文件内容
    file.close()

22.2.2 readline() 逐行读取

  • 示例

    file = open("example.txt", "r")
    line = file.readline()  # 读取文件的第一行
    while line:
        print(line, end="")  # 打印每行内容
        line = file.readline()  # 继续读取下一行
    file.close()

22.2.3 readlines() 读取所有行,返回列表

  • 示例

    file = open("example.txt", "r")
    lines = file.readlines()  # 读取所有行,返回列表
    for line in lines:
        print(line, end="")  # 打印每行内容
    file.close()

22.3 文件的写入(掌握)

使用 'w' 模式或 'w+' 模式可以将内容写入文件,注意 'w' 模式会清空文件内容。写入可以通过 write()writelines() 方法实现。

21.3.1 write() 写入字符串

  • 示例

    file = open("example.txt", "w")
    file.write("Hello, world!\n")  # 写入字符串
    file.write("Python 文件写入示例。\n")
    file.close()

22.3.2 writelines() 写入多行

  • 示例

    file = open("example.txt", "w")
    lines = ["第一行\n", "第二行\n", "第三行\n"]
    file.writelines(lines)  # 写入多行内容
    file.close()

22.4 文件的追加(掌握)

使用 'a' 模式可以在文件末尾追加内容。追加写入不会清空文件内容,而是在已有内容的末尾追加。

  • 示例

    file = open("example.txt", "a")
    file.write("这是追加的一行。\n")  # 在文件末尾追加
    file.close()

22.5 使用 with 语句自动管理文件(掌握)

在文件操作中,手动关闭文件是必须的,但有时可能会忘记使用 close()。使用 with 语句可以确保文件操作完成后自动关闭文件,即使在执行过程中发生错误。

示例:使用 with 语句读取文件

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
# 此时文件已自动关闭

示例:使用 with 语句写入文件

with open("example.txt", "w") as file:
    file.write("使用 with 语句写入内容。\n")
# 文件已自动关闭

22.6 文件指针的移动(了解)

文件指针用于指示当前读写的位置。使用 seek()tell() 可以控制和获取指针的位置。

22.6.1 seek(offset, whence) 移动指针

  • 参数

    • offset:指针移动的偏移量。
    • whence:移动的起始位置(0 表示文件开头,1 表示当前位置,2 表示文件末尾)。
  • 示例

    with open("example.txt", "r") as file:
        file.seek(5)  # 将指针移动到文件的第 5 个字节
        print(file.read())  # 从第 5 个字节开始读取

22.6.2 tell() 获取当前指针位置

  • 示例

    with open("example.txt", "r") as file:
        print(file.tell())  # 输出指针当前位置
        file.read(5)  # 读取 5 个字节
        print(file.tell())  # 输出新的指针位置

22.7 文件的其他操作(了解)

Python 提供了一些内置的文件操作方法,如 os 模块中的 remove()rename()exists() 等,用于对文件进行删除、重命名、检查是否存在等操作。

删除文件

使用 os.remove() 删除指定文件。

import os
os.remove("example.txt")  # 删除文件 example.txt

重命名文件

使用 os.rename() 重命名文件。

os.rename("old_name.txt", "new_name.txt")  # 重命名文件

检查文件是否存在

使用 os.path.exists() 检查文件是否存在。

if os.path.exists("example.txt"):
    print("文件存在")
else:
    print("文件不存在")

22.8 二进制文件的读写(了解)

对于非文本文件(如图片、视频、音频等),需要使用二进制模式读写,以避免编码问题。使用模式 'rb' 读取二进制文件,使用 'wb' 写入二进制文件。

示例:读取二进制文件

with open("example.jpg", "rb") as file:
    content = file.read()
    print(content)  # 输出二进制内容

示例:写入二进制文件

with open("example_copy.jpg", "wb") as file:
    file.write(content)  # 将读取的二进制内容写入新文件

22.9 文件读写的常见问题(掌握)

  1. 忘记关闭文件:在文件操作结束后要记得关闭文件,或使用 with 语句自动管理文件。
  2. 文件路径错误:检查文件路径是否正确,可以使用绝对路径或相对路径。
  3. 文件编码问题:如果文件包含非 ASCII 字符,建议在打开文件时指定编码,如 open("example.txt", "r", encoding="utf-8")
  4. 文件不存在:在打开文件之前检查文件是否存在,避免 FileNotFoundError 错误。
  5. 文件权限错误:确保对文件具有相应的读写权限,否则可能会遇到 PermissionError 错误。

结束

本文标题: Python3学习笔记第二十二篇--文件读写

本文链接: https://blog.oyooy.com/archives/68.html

除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2025 年 02 月 08 日
如果觉得我的文章对你有用,请随意赞赏