打开与读取文件
打开文本文件,并使用 read 和 readlines 读取其内容。
打开与读取文件 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
简介
Python 内置的 open() 函数让您可以访问文件系统。逐行读取文件对于大型数据来说更加节省内存。
open() 基础
f = open('file.txt', 'r') 会以读取模式打开文件。模式包括:'r' 读取、'w' 写入、'a' 追加、'b' 二进制。
# f = open('data.txt', 'r')
# content = f.read()
# f.close()
print('open demo')read() 方法
f.read() 会将整个文件作为一个字符串读取。它适合小型文件;对于数 GB 的文件应避免使用。
# content = open('data.txt').read()
print('read demo')readlines()
f.readlines() 会返回一个行列表,每行都以 \n 结尾。需要去除行尾字符:line.rstrip()。
# lines = open('data.txt').readlines()
# for line in lines: print(line.rstrip())
print('readlines demo')readline()
f.readline() 一次读取一行。当您需要精细控制,或正在读取超大文件的数据流时,这很有用。
# f = open('data.txt')
# first = f.readline()
print('readline demo')直接遍历行
for line in f: 是最高效的内存使用方式之一——它一次读取一行,而不会将整个文件加载到内存中。
# for line in open('data.txt'):
# print(line.rstrip())
print('line iterator demo')编码参数
请始终指定编码:open('file.txt', encoding='utf-8'),以避免平台特定的默认编码导致错误。
# f = open('data.txt', 'r', encoding='utf-8')
print('encoding demo')读取指定字节
f.read(100) 最多读取 100 个字节或字符。f.seek(0) 会将文件指针重置到开头。
# f = open('data.txt')
# chunk = f.read(100)
# f.seek(0)
print('seek demo')tell()
f.tell() 会返回当前的字节位置。可以结合 seek() 在文件中跳转。
# f = open('data.txt')
# f.read(5)
# print(f.tell())
print('tell demo')读取二进制文件
open('image.png', 'rb') 会以二进制读取模式打开文件。它返回 bytes 对象,而不是字符串。
# with open('image.png', 'rb') as f:
# header = f.read(4)
print('binary read demo')始终关闭文件
f.close() 会释放操作系统的文件句柄。如果代码在 close() 之前引发错误,句柄就会泄漏。请使用 with 来避免这种情况。
# f = open('data.txt')
# try:
# content = f.read()
# finally:
# f.close()
print('close demo')快速检查
哪个方法可以从文件对象中一次读取一行?
回顾
open(path, mode, encoding) 会打开文件。read() 获取全部内容。readline() 获取一行。直接遍历文件对象可以提高效率。请始终关闭文件。
继续学习
做得很好!请继续下一课,持续取得进步。
常见问题解答
「打开与读取文件」课时是免费的吗?
是的 — 「打开与读取文件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「打开与读取文件」这节课中我会学到什么?
打开文本文件,并使用 read 和 readlines 读取其内容。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「打开与读取文件」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。