Python - 读取文件:初学者指南
你好,未来的Python大师们!? 今天,我们将开始一段激动人心的Python文件处理之旅。作为你友好的邻居计算机老师,我将指导你学习读取文件的来龙去脉。如果你之前从未写过一行代码,也不要担心——我们将从零开始,逐步构建。所以,拿起你最喜欢的饮料,舒服地坐好,让我们开始吧!
打开文件以供读取
在我们能够读取文件之前,我们需要打开它。将其想象成在进入房子之前敲门。在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