文件处理

目录:

一:文件的读取

二:文件的写入

三:文件的修改

 

 

一:打开文件的方法

 

f=open(r'文件的路径',mode='打开文件的模式',encoding='操作文件的字符编码')
f=open(r'a.txt',mode='r')
print(f)

 

二:文件的读取:          

 

         1.‘r’可读不可写 

f=open('a.txt',mode='r',encoding='utf-8') #mode='rt'
# f.write('哈哈啊哈哈啊啊 啊啊123213213123\n') #抛出异常,不能写
print(f.readline())#readline是一行行读

       2.‘r+’可读可写

f=open('a.txt',mode='r+',encoding='utf-8') #mode='r+t'
f.write('哈哈啊哈哈啊啊 啊啊123213213123\n') 
print(f.readable())

       3.b模式‘rb’ 

with open('1.jpg',mode='rb',) as f:
    data=f.read()
    print(data,)
    print(type(data))
# with open('db.txt',mode='rb',) as f:
# data=f.read()
# print(data.decode('utf-8')) #bytes-----unicode
# print(type(data))
 

二.文件的写入

     1.'w'只写模式

f=open(r'a1.txt',mode='w',encoding='utf-8') #默认是wt
# f.write('第一行\n')
# f.write('第二行\n')

       2.追加

f=open(r'a1.txt',mode='a',encoding='utf-8') #默认是at
# f.write('第一行\n')
# f.write('第二行\n')

      3.‘wb’模式

with open('b.txt',mode='wb') as f:
    msg='你好啊,吴三炮'     #覆盖
    f.write(msg.encode('utf-8'))

 

     4.‘ab’模式

with open('b.txt',mode='ab') as f:   #追加
    f.write('你好'.encode('utf-8'))

     5.利用鼠标偏移量,‘r+’定位追加

with open('user.txt','r+',encoding='utf-8') as f:
    f.seek(9) #偏移量的单位是字节
    # print(f.tell())
    f.write('[老男孩第二帅的人]')   

三:文件的修改   

      1.修改文件方式一:

        1、先把文件内容全部读入内存

        2、然后在内存中完成修改

        3、再把修改后的结果覆盖写入原文件

        缺点:会在文件内容过大的情况下,占用过多的内存
with open('user.txt',mode='r',encoding='utf-8') as f:
    data=f.read()
    data=data.replace('林海峰老师','林海峰[老男孩第一帅的人]')

with open('user.txt',mode='w',encoding='utf-8') as f:
    f.write(data)

     2.修改文件方式二:

      以读的方式打开原文件,以写的方式打开一个新文件

import os
with open('user.txt',mode='rt',encoding='utf-8') as read_f,\
        open('user.txt.swap',mode='wt',encoding='utf-8') as write_f:
    for line in read_f:
        if '吴佩其' in line:
            line=line.replace('吴佩其','吴佩其[老男孩第二帅]')
        write_f.write(line)
os.remove('user.txt')
os.rename('user.txt.swap','user.txt')

 

 

     

 

        

    

    

 

posted @ 2018-03-24 19:14  宋先生、  阅读(236)  评论(0编辑  收藏  举报