共计 965 个字符,预计需要花费 3 分钟才能阅读完成。
在前面的学习中,我们已经了解了如何打开文件并读取内容。今天我们深入学习文件读写操作的更多细节,包括不同模式和二进制文件的处理。
- 文件打开模式
在open()函数中,可以通过第二个参数指定模式:
"r":只读模式(默认)"w":写入模式(会清空原文件)"a":追加模式(在文件末尾写入内容)"rb":以二进制方式读取"wb":以二进制方式写入
例如:
f = open("example.txt", "w")
f.write("Hello Python")
f.close()
- 逐行读取文件
如果文件内容很多,可以按行读取:
with open("example.txt", "r") as f:
for line in f:
print(line.strip())
- 一次性读取所有内容
with open("example.txt", "r") as f:
content = f.read()
print(content)
- 写入多行内容
with open("data.txt", "w") as f:
lines = [" 第一行 \n", " 第二行 \n", " 第三行 \n"]
f.writelines(lines)
- 文件追加写入
with open("data.txt", "a") as f:
f.write(" 这是追加的内容 \n")
- 二进制文件读写
处理图片、音频等非文本文件时需要二进制模式:
# 复制图片
with open("image.jpg", "rb") as f1:
data = f1.read()
with open("copy.jpg", "wb") as f2:
f2.write(data)
- 文件指针控制
使用seek()可以控制文件指针位置:
with open("example.txt", "r") as f:
f.seek(5) # 将指针移动到第 6 个字节
print(f.read())
- 结合异常处理
try:
with open("nofile.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print(" 文件不存在 ")
总结:
文件读写是编程中非常常见的操作。掌握文本模式与二进制模式的区别,能够帮助我们处理各种数据文件。
练习与思考:
- 创建一个文本文件,写入 5 行内容,然后读取并逐行打印。
- 编写一个程序,将一个文件的内容复制到另一个文件。
- 使用
seek()和read()方法,尝试只读取文件中间的一部分内容。
正文完