Python入门学习过程中,文件读写是最常用的基础操作之一,通过内置的open函数和相关方法,我们可以轻松实现本地文件的读取、写入、修改等功能,不需要依赖第三方库就能完成大部分常规文件处理需求。

文件打开的基础方式
Python操作文件的第一步是使用open()函数打开目标文件,该函数会返回一个文件对象,后续的所有读写操作都基于这个对象完成。open()函数最常用的两个参数是文件路径和打开模式,基本语法如下:
# open函数基本语法 file_obj = open(file_path, mode='r', encoding=None)
其中file_path是目标文件的路径,可以是绝对路径也可以是相对路径;mode是打开模式,默认是r即只读文本模式;encoding是文件编码,处理文本文件时通常需要指定,比如utf-8。
常用打开模式说明
不同的打开模式决定了文件的操作权限和数据处理方式,常见的模式如下:
- r:只读模式,文件不存在会抛出错误,默认模式
- w:写入模式,文件不存在会创建,存在会清空原有内容
- a:追加模式,文件不存在会创建,存在则在末尾追加内容
- b:二进制模式,需要和r、w、a组合使用,比如
rb、wb - +:读写模式,和r、w、a组合使用,比如
r+支持读写
标准文件读取操作
打开文件后,我们可以通过文件对象的方法读取文件内容,常用的读取方法有三种:
read()方法
该方法会读取文件的全部内容,返回一个字符串(文本模式)或字节对象(二进制模式),适合小文件读取:
# 读取整个文件内容
file = open('test.txt', 'r', encoding='utf-8')
content = file.read()
print(content)
file.close() # 操作后必须关闭文件释放资源
readline()和readlines()方法
readline()每次读取一行内容,readlines()读取所有行并返回列表,每行作为列表的一个元素:
# 逐行读取文件
file = open('test.txt', 'r', encoding='utf-8')
# 读取第一行
line1 = file.readline()
print(line1)
# 读取剩余所有行
all_lines = file.readlines()
print(all_lines)
file.close()
标准文件写入操作
写入操作需要使用w或a模式打开文件,然后通过write()方法写入内容:
# 写入文件内容
# w模式会清空原有内容
file = open('test.txt', 'w', encoding='utf-8')
file.write('这是第一行写入的内容n')
file.write('这是第二行写入的内容')
file.close()
# a模式追加内容
file = open('test.txt', 'a', encoding='utf-8')
file.write('n这是追加的第三行内容')
file.close()
使用with语句优化操作
手动调用close()方法容易出现遗漏,导致文件资源无法释放,Python提供了with语句来自动管理文件资源,操作完成后会自动关闭文件,是更推荐的标准写法:
# 使用with语句读取文件
with open('test.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)
# 离开with代码块后文件自动关闭,不需要手动调用close()
# 使用with语句写入文件
with open('test.txt', 'w', encoding='utf-8') as file:
file.write('使用with语句写入的内容')
二进制文件处理示例
处理图片、音频等非文本文件时,需要使用二进制模式,此时不需要指定encoding参数:
# 复制图片文件
with open('source.jpg', 'rb') as src_file:
content = src_file.read()
with open('copy.jpg', 'wb') as dst_file:
dst_file.write(content)
常见注意事项
- 操作文件时尽量使用
with语句,避免资源泄露 - 文本文件读写建议显式指定
encoding='utf-8',避免编码错误 - 写入文件时如果需要换行,要手动添加换行符
n - 使用
w模式打开文件会清空原有内容,确认需求后再使用 - 文件路径包含中文时,尽量使用相对路径或者确保路径编码正确