文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件
#读取大文件适合用,因为它读取的内容只占内存为一行
#因为变成了迭代器了 f = open("file_1.txt","r",encoding="utf-8") for line in f : print(line) f.close()
#如果想要对某一行有特殊的处理的话,只能用计时器,迭代器是没有下标的
f = open("file_1.txt","r",encoding = "utf-8") coun = 0 ###计时器 for line in f: if conu ==10: ###判断 print("-----我很重要------") conu +=1 print("line") coun +=1
###基本操作encoding = "utf-8"支持中文,基本的
##"a"读写模式
f = open("lyrics","a",encoding = "utf-8")#打开文件 first_line = f.readline()#逐行读取####写#write() print("first line:",first_line)#读一行 data = f.read() ##读取剩下的内容,文件大时不要使用 print(data) # 打印文件 f.close()#关闭文件
##循环读取 有范围 f_1 = open("file_1.txt","r",encoding="utf-8") for data1 in range(1,5): data = f_1.readline() print(data) f_1.close()
##循环读取 全部逐条读取 f_1 = open("file_1.txt","r",encoding="utf-8") for line in f_1.readlines(): print(line.strip()) f_1.close()
f_1 = open("file_1.txt","r",encoding="utf-8") for index,line in enumerate(f_1.readlines()): if index == 9: print("---------caicai--------") continue print(line.strip()) f_1.close()
##进度条 import sys,time for i in range(20): sys.stdout.write("*")###向屏幕输出 sys.stdout.flush() ###打印缓冲 time.sleep(0.1)##打印一个的时间
f.fell()##光标移到读取的文件尾部,返回字符数 f.seek(0)##光标回到0,下次重新读取 f.flush()写入文件的时候,没有写入成功情况下,会有一个缓冲区,有这句代码下次会重新写入 r+ #读写,可以读,也可以写,写是以追加的形式写入 w+ #写读,以创建文件的形式,先写入文件,然后再读取,注意:之前的文件里面有的东西全部覆盖掉 a+ ###追加读写 rb ##只能用于二进制,用于传输文件的时候的场景 wb #写二进制