返回

Python 文件读写操作 - 二、文件读操作 (Read)

IOS

文件操作详解:从头到尾了解 Python 文件读取

在 Python 中,文件操作是处理数据文件的一项基本任务,涵盖了从文件中读取和写入信息。本文将深入探究文件读取的各个方面,提供详细的指南和实际示例,帮助你掌握这一重要技能。

文件指针:指向文件内容的指南

想象一个正在阅读书籍的人。当他们翻动页面时,他们的手指就像一个指针,标记着他们当前所在的位置。同样,文件指针也是一个标记,指示文件中的当前读取位置。Python 为每个打开的文件创建一个文件对象,其中包含一个指向文件开头的文件指针。通过 tell() 方法,你可以随时获取文件指针的当前位置。

file = open("myfile.txt", "r")
print(file.tell())  # 输出:0

一次性读取全部内容:高效便捷

顾名思义,read() 方法一次性读取文件中的所有内容,并返回一个包含文件所有内容的字符串。这种方法适用于需要立即处理整个文件的情况。

file = open("myfile.txt", "r")
content = file.read()
print(content)

逐行读取文件:按需获取

对于大型文件,逐行读取可以更有效地利用内存。readline() 方法每次返回文件中的下一行,作为字符串。当到达文件末尾时,readline() 将返回一个空字符串。

file = open("myfile.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line)

逐行读取文件并存储为列表:方便管理

readlines() 方法一次性读取文件的所有行,并返回一个包含这些行的列表。这种方法将文件内容组织成一个数据结构,便于后续处理。

file = open("myfile.txt", "r")
lines = file.readlines()
print(lines)

示例:实践出真知

假设我们有一个名为 myfile.txt 的文件,其中包含以下内容:

这是第一行。
这是第二行。
这是第三行。

使用上述方法,我们可以读取该文件:

一次性读取全部内容:

file = open("myfile.txt", "r")
content = file.read()
print(content)
# 输出:
# 这是第一行。
# 这是第二行。
# 这是第三行。

逐行读取文件:

file = open("myfile.txt", "r")
while True:
    line = file.readline()
    if not line:
        break
    print(line)
# 输出:
# 这是第一行。
# 这是第二行。
# 这是第三行。

逐行读取文件并存储为列表:

file = open("myfile.txt", "r")
lines = file.readlines()
print(lines)
# 输出:
# ['这是第一行。\n', '这是第二行。\n', '这是第三行。']

关闭文件:善后工作

在完成文件操作后,务必使用 close() 方法关闭文件。这将释放与该文件关联的系统资源,确保操作的完整性。

file.close()

常见问题解答

1. 如何使用 with 语句简化文件操作?

with 语句提供了一种简洁的方法来处理文件操作,它会在语句块结束时自动关闭文件,无需显式调用 close() 方法。

with open("myfile.txt", "r") as file:
    content = file.read()

2. 如何读取文件中的特定行?

使用 seek() 方法将文件指针移动到特定行,然后使用 readline() 读取该行。

file = open("myfile.txt", "r")
file.seek(10)  # 移动到第 11 行
line = file.readline()

3. 如何处理文件中的空行?

可以使用 strip() 方法删除行中的所有空白字符,包括空行。

for line in file.readlines():
    line = line.strip()
    if line:
        # 处理非空行

4. 如何从文件读取二进制数据?

使用 "rb" 模式打开文件,并使用 read()readline() 方法读取二进制数据。

with open("myfile.bin", "rb") as file:
    data = file.read()

5. 如何将数据写入文件?

使用 "w" 或 "a" 模式打开文件,并使用 write()writelines() 方法写入数据。

with open("myfile.txt", "w") as file:
    file.write("这是新内容。")

总结

文件读取是 Python 中一项基本技能,理解文件指针的概念和掌握各种读取方法至关重要。通过一次性读取、逐行读取和存储为列表,你可以根据需要灵活地处理文件。始终记得在操作完成后关闭文件,以确保资源得到适当释放。