文件的增删改查

 

 

  • 只读写法:
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)

 

posted @ 2017-12-05 08:40  雨之愿风  阅读(217)  评论(0编辑  收藏  举报