文件的基本读写(需要存在love文件)
#文件操作:打开-读/写....-关闭 f = open("love",'r',encoding='utf-8')#r表示只读模式,不能进行写,需要存在一个love的文件 e = open("love1",'w',encoding='utf-8')#w表示只写模式,不能进行读操作 g = open("love1",'a',encoding='utf-8')#a:append表示追加模式,不能进行读操作 data_f = f.read() print(data_f) data_e = e.write("小虎队的成员分别是: ")#创建新文件,如文件存在,覆盖之前 data_g = g.write("syp,wql,czp") f.close() e.close() g.close()
文件读写模式
f = open("love",'r+',encoding='utf-8')#r+模式表示可读可写模式 for i in range(5): #读前5行 print(f.readline()) f.write("我爱北京、")#读取之后,可以在文件末尾追加,类似a模式 f.close()
另外还有其他的几种模式
文件对象操作
f = open("love",'r',encoding='utf-8') print(f.readlines())#转成列表 for line in f.readlines(): print(line.strip()) #循环打印 f.close
打印文件某一行打印其他内容-方法一
f = open("love",'r',encoding='utf-8') #第9行打印分割线 for index,line in enumerate(f.readlines()): if index == 9: print("------分割线-------") continue print(line.strip()) f.close()
打印文件某一行打印其他内容-方法二
f = open("love",'r',encoding='utf-8') count =0 for line in f: if count == 9: print("-----分割线------") count += 1 continue print(line.strip()) count += 1 f.close()
立即刷新,将写的内容刷到内存中
f = open("love2","w",encoding="utf-8") f.write("--------line1--------- ") f.flush()#立即刷新,将书写的内容立即刷新到内存中;如果不进行刷新,python会将所有的操作完成后或到达一定大小后,一次性写入内存中 f.write("--------line2---------") f.close
flush方法的应用-进度条
import sys,time for i in range(20): sys.stdout.write("#") sys.stdout.flush()#每刷一次会将写的“#”显示到屏幕上 time.sleep(0.1)
tell与seek方法
f = open("love2","a+",encoding="utf-8") f.write("--------line1--------- ") f.write("--------line2---------") print(f.tell())#打印指针位置 f.seek(30)#将指针返回至某个位置 print(f.tell())#再次打印指针位置 f.close
truncate方法
f = open("love2","a+",encoding="utf-8") f.write("--------line1--------- ") f.write("--------line2---------") print(f.tell())#打印指针位置 f.seek(30)#将指针返回至某个位置 print(f.tell()) f.truncate(20)#不随指针位置的移动,进行截断,从头开始