文件的打开与关闭
第一种方法:open函数
open函数:打开一个文件,并返回文件对象。如果文件无法打开,会抛出 OSError异常。
open函数的参数介绍:
file参数
要打开的文件路径。可以是绝对路径也可以是相对路径
mode参数
打开文件的模式。分为:
r:只读。文件的指针会放在文件的开头。这是默认模式。
w:写入。如果打开的文件不存在,创建新文件。如果该文件已存在则会删除原有内容,再写入。
a:追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。
b:二进制模式打开。常用于非文本文件的操作,比如视频和图片。或在用于网络传输时使用。
+:读写模式:与其他模式组合使用,表示文件既可读也可写(如 'r+'
、'w+'
、'a+'
等)。
r+与w+的区别:
encoding参数
以何种编码方式打开文件。常用utf-8
示例代码:
file = open('test.txt', 'r+', encoding='UTF-8') file.close()
close()关闭文件
使用open函数时需要用到。每次操作完文件都需要关闭,否则打开的文件将一直占用内存,内存只增不减,导致内存泄露。
第二种方法:with open
with open也是打开一个文件,与直接使用open方法打开的区别在于:
1.open需要手动调用close方法关闭文件;with open不需要。
2.open需要显式处理异常;with open即使发生异常,文件也会自动关闭
实际应用中应多使用with open的方式。
操作方法介绍
read():一次性读取文件的全部内容。
with open('test.txt', 'r+', encoding='UTF-8') as file:content = file.read()print(content)#输出: 测试文案第一行测试文案第二行
readline:逐行读取文件,每次读取一行。
with open('test.txt', 'r+', encoding='UTF-8') as file:content = file.readline()print(content)# 输出: 测试文案第一行
readlines:读取所有行,返回一个包含每行内容的列表。
with open('test.txt', 'r+', encoding='UTF-8') as file:lines = file.readlines()print(lines)# 输出 ['测试文案第一行\n', '测试文案第二行\n']
# 结合for循环使用 with open('test.txt', 'r+', encoding='UTF-8') as file:for line in file.readlines():print(line)# 输出 测试文案第一行测试文案第二行
写
seek
tell
with open