Python 根底-文件操作
文件解决流程
1.关上文件,失去文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.敞开文件
 r模式,默认模式,文件不存在则报错
w模式,文件不存在则创立,文件存在则笼罩
a模式,文件不存在则创立,文件存在则不会笼罩,写内容会以追加的形式写(写日志文件的时候罕用),追加模式是一种非凡的写模式
b(rb,wb,ab)模式:不必加encoding:utf-8
基本操作
关上文件

open(path, flag[, encoding][, errors])path:要关上文件的门路flag:关上文件的形式r   以只读的形式关上文件,文件的描述符放在文件的结尾   rb  以二进制格局关上一个文件用于只读,文件的描述符放在文件的结尾r+  关上一个文件用于读写,文件的描述符放在文件的结尾w   关上一个文件只用于写入,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件wb  关上一个文件只用于写入二进制,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件w+  关上一个文件用于读写,如果该文件曾经存在会笼罩,如果不存在则创立一个新文件a   关上一个文件用于追加,如果文件存在,文件描述符将会放在文件开端a+  encoding:编码格局errors:错误处理path = r"C:\Users\Desktop\file1.txt"#ignore  疏忽谬误f = open(path, "r",encoding="gbk")

关上文件的模式有:

r ,只读模式【默认模式,文件必须存在,不存在则抛出异样】
w,只写模式【不可读;不存在则创立;存在则清空内容】
x, 只写模式【不可读;不存在则创立,存在则报错】
a, 追加模式【可读;   不存在则创立;存在则只追加内容】
"+" 示意能够同时读写某个文件

r+, 读写【可读,可写】
w+,写读【可读,可写】
x+ ,写读【可读,可写】
a+, 写读【可读,可写】
 "b"示意以字节的形式操作

rb  或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+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:  passwith 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))

人生是条无名的河,是浅是深都要过; 人生是杯无色的茶,是苦是甜都要喝; 人生是首无畏的歌,是高是低都要唱。

以上就是本次分享的全部内容,当初想要学习编程的小伙伴欢送关注Python技术大本营,获取更多技能与教程。