文件的增删改查
- 只读写法:
1 f = open("yesterday","r",encoding="utf-8")#只读模式,只能读,不能写,将文件全部写到内存显示,大文件下不适合使用 2 data = f.read() 3 print(data)
f.close()#打开文件后,记得关闭文件
- 只写写法:
1 f = open("yesterday","w",encoding="utf-8")#只写模式,只能写,不能读,若没有文件存在,则生成yesterday名称的txt文件;若文件存在,则重新里面的内容,覆盖原来的信息 2 f.write("丹丹,我爱你!") 3 print(f)
f.close()#打开文件后,记得关闭文件
- 加写法:
1 f = open("yesterday","a",encoding="utf-8") 2 data = f.write("\n钰钰,我也爱你") 3 f.close()#打开文件后,记得关闭文件
- tell()
- seek()
- Readline():读取单行
- readlines():读取整个文本
f = open("yesterday","r",encoding="utf-8") print(f.tell()) print(f.readline()) print(f.tell())#计算当前光标所在位置,也就是该位置前字符的数目 f.seek(10)#将光标弄回到10,然后从10字符位置开始打印 print(f.readline())
- 截断truncate()
f = open("yesterday","a",encoding="utf-8") print(f.name)#打印文件名称 f.seek(20) f.truncate(30)#从头开始截断到30字符位置,无论光标在哪里
- 读写模式
#r+为读写,在文件最后追加 f = open("yesterday","r+",encoding="utf-8") f.readline() f.readline() f.readline() f.write("----------------------")
- 写读模式(一般没用)
#w+为写读,新建一个文件,在文件最后追加,不要用 f = open("yesterday","w+",encoding="utf-8") f.write("-------------靠---------1\n") f.write("-------------靠---------2\n") f.write("-------------靠---------4\n") f.write("-------------靠---------3\n") f.seek(0) f.write("增加")
- 二进制文件读
f = open("yesterday","rb")#读取二进制文件,因为是字节,所以没有编码,一般网络传输猜需要使用二进制文件 print(f.readline())
结果:b'----------------------'
- 二进制文件写
f = open("yesterday",'wb')#写二进制文件 print("hello word\n".encode())#因为文件是以二进制存储,所以字符串需要转换为二进制才能存入 f.close()
- 文件的修改
f = open("yesterday","r",encoding="utf-8")#读取文件信息 f_new = open("yesterday_bak",'w',encoding='utf-8')#新建一个文件,作为写入修改后的文件 #一行行读取f文件信息,当找到需要修改的信息时候,利用字符串替代函数将信息修改,然后写入新文件里 for line in f: if "当他们演奏时我会跟着唱" in line: line = line.replace("当他们演奏时我会跟着唱","当我变得更加帅地唱") f_new.write(line)
- with语句打开单文件
#with语句能自动关闭文件,不需要在最后加上close,一般推荐使用这个方法 with open("yesterday","r",encoding="utf-8") as f : for line in f: print(line)
- with语句打开多文件
#若打开多个文件,建议如下写法 with open("yesterday","r",encoding="utf-8") as f ,\ open("yesterday_bak","r",encoding="utf-8") as f1: for line in f: print(line)