时间:2022-12-16 09:30:56 | 栏目:Python代码 | 点击:次
r模式,默认模式,文件不存在则报错
w模式,文件不存在则创建,文件存在则覆盖
a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以追加的方式写(写日志文件的时候常用),追加模式是一种特殊的写模式
b(rb,wb,ab)模式:不用加encoding:utf-8
open(path, flag[, encoding][, errors])
path = r"C:\Users\Desktop\file1.txt" #ignore 忽略错误 f = open(path, "r",encoding="gbk")
打开文件的模式有:
"+" 表示可以同时读写某个文件
"b"表示以字节的方式操作
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
# 1、读取文件全部内容 str1 = f.read() print(str1) # 2、读取指定字符数 str2 = f.read(10) print("*"+str2+"*") str3 = f.read(10) print("*"+str3+"*") # 3、读取整行,包括"\n"字符 str4 = f.readline() print(str4) str5 = f.readline() print(str5) # 4、读取指定字符数 str6 = f.readline(10) print(str6) # 5、读取所有行并返回列表 list7 = f.readlines() print(list7) # 6、若给定的数字大于0,返回实际size字节的行数 list8 = f.readlines(20) print(list8) # 7、修改描述符的位置 f.seek(10) str9 = f.read() print(str9)
f.close()
# 一个完整的过程 try: f1 = open(path,"r", encoding="gbk") print(f1.read()) finally: if f1: f1.close()
with open(path,"r",encoding="gbk") as f2: print(f2.read())
path = r"C:\Users\Desktop\file4.txt" f = open(path,"w") # 1、将信息写入缓冲区 f.write("lee is a good man") # 2、刷新缓冲区 # 直接把内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区写入 f.flush() f.write("lee is a good man\n") f.close() with open(path,"a") as f: f.write("good man")
with open('a.txt','w') as f: pass with open('a.txt','r') as read_f,open('b.txt','w') as write_f: data=read_f.read() write_f.write(data)
path = r"C:\Users\yanji\Desktop\day7\test1" with open(path,"wb") as f3: str = "lee is a good man" f3.write(str.encode("utf-8")) with open(path,"rb") as f2: data = f2.read() print(data) print(type(data)) newDate = data.decode("utf-8") print(newDate) print(type(newDate))