Python文件的基本操作与常用方法(读取、写入与追加)
作者:小尛怪
文件操作是编程中不可或缺的一部分,Python通过内置的open函数提供了丰富的文件读写能力,本文将详细介绍文件的基本操作及常用方法,需要的朋友可以参考下
前言
文件操作是编程中不可或缺的一部分。Python通过内置的open函数提供了丰富的文件读写能力。本文将详细介绍文件的基本操作及常用方法。
一、打开文件 ——open()函数
open(file, mode='r', encoding=None)用于打开文件,返回一个文件对象。
file:文件路径(相对或绝对)mode:访问模式,常用:'r':只读(默认),文件指针在开头,文件不存在则报错'w':只写,文件存在则清空覆盖原有内容,不存在则创建'a':追加,文件存在则在末尾追加内容,不存在则创建
encoding:编码格式,文本文件推荐固定写utf-8,避免乱码
f = open("word.txt", "r", encoding="utf-8")
print(type(f)) # <class '_io.TextIOWrapper'>
二、读取文件的方法
2.1 read(size)—— 读取内容
文本模式下读取指定字符数,二进制模式读取字节数;不传参数则读取文件全部内容。
content = f.read() # 读取全部内容 content_10 = f.read(10) # 读取前10个字符
2.2 readline()—— 每次读取一行
读取单行内容,自带换行符 \n,打印时会有空行。
line1 = f.readline() line2 = f.readline() print(line1.strip(), line2.strip()) # 一般配合strip去除换行和空格
2.3 readlines()—— 读取所有行,返回列表
一次性读取所有行,每一行作为列表元素,适合小文件使用。
lines = f.readlines()
for line in lines:
print(line.strip())
2.4 使用for循环直接遍历文件对象(最常用,且内存友好)
逐行读取,不会一次性加载全部文件内容,适合超大文件。
for line in f:
print(line.strip())
2.5 关闭文件 ——close()
f.close() 关闭文件,释放系统资源。如果代码中途报错,close() 可能无法执行,导致文件句柄泄露。因此推荐 with 语句。
2.6 with open 上下文管理器
自动关闭、自动刷新缓冲区,代码更安全简洁。
with open("word.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip())
# 离开with代码块,文件自动关闭
三、文件的写入与追加
2.1 写入模式 ‘w’
覆盖写入,会清空原文件所有内容。write() 不会自动换行,需要手动加 \n。
with open("test.txt", "w", encoding="utf-8") as f:
f.write("hello world!")
补充:write 内容会先存入内存缓冲区,不会立刻落盘;with 结束会自动刷新缓冲区并关闭文件,无需手动 flush。
2.2 追加模式 ‘a’
在文件末尾新增内容,不会覆盖原有数据。
with open("test.txt", "a", encoding="utf-8") as f:
f.write("\nnew line")
四、常见问题与错误纠正
read(size)易错点
文本模式读取的是「字符数」,不是字节数;只有二进制 rb/wb 模式才是字节数,新手极易混淆。- 文件指针问题
如果先read()读完整个文件,指针会停在末尾,后续 for 循环遍历将读不到任何内容,需要重新打开文件或seek(0)重置指针。 - 文件覆盖踩坑
'w'模式打开文件会直接清空原有内容,练习时切勿用'w'模式误操作原始数据文件。 - 编码问题
所有文本文件操作必须指定encoding=“utf-8”,否则Windows系统默认gbk编码,极易出现乱码、报错。
总结
open()三大基础模式:r只读、w覆盖写入、a追加写入;操作文本文件务必指定encoding="utf-8",避免乱码。- 文件读取四种方式按需选用:大文件优先直接
for循环遍历文件对象;小文件可使用read()、readlines()。注意区分文本模式字符、二进制模式字节,理解read(size)的区别。 - 推荐优先使用
with open上下文管理器,自动关闭文件、刷新缓冲区,防止文件句柄泄露,减少异常带来的数据丢失问题。 - 牢记文件指针机制:读取完毕后指针位于文件末尾,重复读取需要重置指针或重新打开文件。
- 警惕
w模式风险:打开瞬间清空原有文件内容,不要误操作原始数据;write()方法不会自动追加换行,需要手动添加\n。
以上就是Python文件的基本操作与常用方法(读取、写入与追加)的详细内容,更多关于Python文件操作与用法的资料请关注脚本之家其它相关文章!
