Python之文件读写 day9
一.文件打开的核心语法
使用open()函数打开文件,基本语法:
with open(file_path,mode,encoding = 'utf-8') as f:#文件操作代码#with语句:自动管理文件资源,操作完成后自动关闭文件
#file_path:文件路径(相对路径或绝对路径)
#mode:打开模式(如 'r' 读、'w' 写等)
#encoding='utf-8':指定字符编码格式
二.字符编码参数encoding = 'utf-8'
1.作用:
指定文本文件的字符编码格式,用于字符与二进制数据的相互转换。可确保:写入文件时,中文字
符等能正确编码为二进制数据;读取文件时,二进制数据能正确解码为中文字符,避免乱码。
2.使用场景:
仅用于文本模式(默认模式),二进制模式 ('b') 不需要指定
三.文件打开模式分类
1.基本模式
'r' :只读模式,文件不存在则报错
'w':写入模式,文件不存在则创建后再写,若存在则先覆盖原有内容再写入
'a':追加模式,在文件末尾添加内容(不会覆盖原有内容)
'x':创建模式,创建新文件,文件已存在则报错
2.组合模式
'r+':读写模式,可同时读写
'w+':读写模式,但是会先清空文件
'a+':读写模式,写入内容后追加在末尾
3.二进制模式
在基本模式后加'b',比如'rb' 'wb' 等。用于处理图片,音频等二进制文件,不需要指定encoding参数
四.文件读取方法
1.read()
读取文件所有内容,返回类型为字符串
with open('read.txt','r',encoding='utf-8') as f:result = f.read()
2.readline()
逐行读取,返回的数据类型也为字符串
with open('file.txt', 'r', encoding='utf-8') as f:line = f.readline() # 读取一行while line:print(line.strip()) # strip()去除换行符line = f.readline()
3.readlines()
读取所有行,返回数据类型为列表
五.文件写入方法
1.write():写入字符串
with open('file.txt', 'w', encoding='utf-8') as f:f.write("这是一行文本\n") # 需手动添加换行符
2.writelines():写入字符串列表
with open('file.txt', 'w', encoding='utf-8') as f:lines = ["第一行\n", "第二行\n", "第三行\n"]f.writelines(lines) # 不会自动添加换行符
六.二进制读写
encode()编码 将文本内容编码成二进制内容
decode()解码 将二进制内容解码成相对应的字符
with open('write.txt','wb') as f:f.write('今天是周三'.encode('utf-8'))
七.练习
1.将read.txt中的内容复制到write.txt文件中
with open('read.txt','r',encoding = 'utf-8') as f:result = f.read()
woth open('write.txt','w',encoding = 'utf-8') as f:f.write(result)
2.将用户输入的内容,添加到文件中
yh = input('请输入内容:')
with open('write.txt','a',encoding = 'utf-8') as f:f.write(yh)