Python - 读取文件:初学者指南

你好,未来的Python大师们!? 今天,我们将开始一段激动人心的Python文件处理之旅。作为你友好的邻居计算机老师,我将指导你学习读取文件的来龙去脉。如果你之前从未写过一行代码,也不要担心——我们将从零开始,逐步构建。所以,拿起你最喜欢的饮料,舒服地坐好,让我们开始吧!

Python - Read Files

打开文件以供读取

在我们能够读取文件之前,我们需要打开它。将其想象成在进入房子之前敲门。在Python中,我们使用open()函数来实现这一点。让我们从一个简单的例子开始:

file = open("hello.txt", "r")

这里发生了什么:

  • open()是我们用来打开文件的函数
  • "hello.txt"是我们想要打开的文件的名称
  • "r"表示我们以读取模式打开文件

记得在完成后始终关闭文件:

file.close()

使用read()方法读取文件

现在我们已经打开了文件,让我们来读取它的内容。read()方法就像吸尘器——它一次性吸收所有内容。以下是它的使用方法:

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

这段代码将打印出文件中的所有内容。虽然简单,但是要注意大文件——它们可能会占用你电脑的所有内存!

使用readline()方法读取文件

有时,我们希望逐行读取文件,就像慢慢品尝美味佳肴的每一口。这时readline()就派上用场了:

file = open("hello.txt", "r")
line = file.readline()
while line:
print(line, end='')
line = file.readline()
file.close()

这段代码逐行读取并打印文件的内容。print()函数中的end=''防止添加额外的换行符,因为readline()会保留换行字符。

使用readlines()方法读取文件

如果我们希望所有行作为一个列表呢?这时可以使用readlines()

file = open("hello.txt", "r")
lines = file.readlines()
for line in lines:
print(line, end='')
file.close()

这个方法返回一个列表,列表中的每个元素都是文件中的一行。这就像得到一盒巧克力,每块巧克力都是一行文本!

使用"with"语句

现在,让我们来谈谈Python提供的一个整洁技巧——with语句。这就像有一个负责任的朋友,总是在离开时记得关上门(文件):

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

with语句在我们完成后会自动关闭文件。再也不用担心忘记调用close()了!

以二进制模式读取文件

有时,我们需要读取不仅仅是文本的文件,比如图片或可执行文件。对于这些文件,我们使用二进制模式:

with open("image.jpg", "rb") as file:
binary_data = file.read()
print(len(binary_data), "字节已读取")

"rb"模式以二进制读取模式打开文件。这就像戴上特殊的眼镜来看到那些一和零!

从文件中读取整型数据

假设我们有一个文件,里面每行有一个数字。以下是我们如何读取并将它们用作整型:

with open("numbers.txt", "r") as file:
numbers = [int(line.strip()) for line in file]
print("数字之和:", sum(numbers))

这段代码读取每一行,将其转换为整型,并将其添加到列表中。然后我们可以对我们的数字进行数学运算!

从文件中读取浮点型数据

与整型类似,我们可以读取浮点数:

with open("measurements.txt", "r") as file:
measurements = [float(line.strip()) for line in file]
print("测量平均值:", sum(measurements) / len(measurements))

这次,我们使用float()而不是int()将字符串转换为小数。

使用"r+"模式读取和写入文件

有时我们希望对同一个文件进行读取和写入。"r+"模式允许我们这样做:

with open("journal.txt", "r+") as file:
content = file.read()
file.write("\n新条目:今天我学习了Python中的文件处理!")
file.seek(0)
updated_content = file.read()
print(updated_content)

这段代码读取文件,添加新行,然后再次读取以显示更改。

同时在Python中读取和写入文件

这里有一个技巧:我们可以使用两个文件对象同时进行读取和写入:

with open("original.txt", "r") as read_file, open("copy.txt", "w") as write_file:
for line in read_file:
write_file.write(line.upper())

这段代码从一个文件中读取,并将大写版本写入另一个文件。这就像有一个大喊的复印机!

从文件中的特定偏移量开始读取

有时我们希望从文件中的特定点开始读取。我们可以使用seek()方法来实现:

with open("long_text.txt", "r") as file:
file.seek(50)  # 移动到第50个字节
partial_content = file.read(100)  # 从该点读取100个字节
print(partial_content)

这就像在书中放一个书签,并从那里开始阅读。

现在,让我们以下面的表格来总结我们所学的方法:

方法 描述
open() 打开一个文件
read() 读取整个文件内容
readline() 读取单行
readlines() 将所有行读入列表
with语句 自动关闭文件
"rb"模式 以二进制读取模式打开文件
int() / float() 将字符串转换为数字
"r+"模式 打开文件以供读写
seek() 移动到文件中的特定位置

就是这些了,各位!你已经学会了Python中读取文件的基础知识。记住,熟能生巧,所以尝试在你自己的文件上使用这些方法吧。谁知道呢,你可能会成为下一个Python文件处理的巫师!快乐编程!?✨

Credits: Image by storyset