• 文件处理


    目录:

    一:文件的读取

    二:文件的写入

    三:文件的修改

     

     

    一:打开文件的方法

     

    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
    ') #抛出异常,不能写
    print(f.readline())#readline是一行行读

           2.‘r+’可读可写

    f=open('a.txt',mode='r+',encoding='utf-8') #mode='r+t'
    f.write('哈哈啊哈哈啊啊 啊啊123213213123
    ') 
    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('第一行
    ')
    # f.write('第二行
    ')

           2.追加

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

          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')

         

            

        

        

  • 相关阅读:
    HTML链接/实施CSS的三种方法
    XML之Well-Formed文档规则
    【摘】SVN提交与版本冲突
    Web开发之404小结
    TCP 连接的要点
    [转] Epoll 相对Poll和Select的优点
    [转] 剖析 epoll ET/LT 触发方式的性能差异误解(定性分析)
    GDB调试技巧
    [转] 关于c++的头文件依赖
    [转] Linux中gcc,g++常用编译选项
  • 原文地址:https://www.cnblogs.com/songxuexiang/p/8625805.html
Copyright © 2020-2023  润新知