• 文件的打开方式


    文件的打开方式


    open(path,enconding='',mode='')

    打开文件的模式:

      文件(保存文件格式) ---- 打开文件(指定编码格式) ----打开模式
    
    
       读取utf-8编码数据,转换成 unicode(str)编码的数据


    文件打开方式种类
    
      r w a r+ w+ a+
    rb wb ab  rw+ wb+ ab+    12种

    1 读
    复制代码
    # f =open(r'C:UsersAdministratorDesktop1.txt',encoding='utf-8')   #  ======>>>  f 为文件句柄,文件操作符
    # print(type(f))                                              #    <class '_io.TextIOWrapper'>
    # f.read()
    # f.readline()
    # f.readlines() #------->>>> 返回一个列表
    # f.close()
     #   都是依赖于光标位置
    复制代码
    复制代码
    r 打开  需要转换编码格式 然后直接读 
    
     file=open('D:\sdas\sadsad1.txt',encoding="gbk",mode='r') 
    
     path=r'C:UsersAdministratorDesktop1.txt'
     file=open(path,encoding='utf-8',mode='r')
     a=file.read()
     print(a)
     file.close()
    复制代码
    复制代码
    rb 打开  内存中是 byte  可以直接打开 但是  读的时候需要 decode解码      >>  上传,下载文件 
    
    file=open('D:\sdas\sadsad1.txt',mode='rb')       >>>>  二进制 bytes
    
    path=r'C:UsersAdministratorDesktop1.txt'
    file=open(path,'rb')
    
    a=file.read().decode('gbk')
    print(a)
    file.close()
    复制代码


    2 写 会清空原文件---要确保源文件不存在
    # f =open(r'C:UsersAdministratorDesktop1.txt','w',encoding='utf-8')
    # f.writelines([]) # 写入 按列表遍历写入   # 注意光标位置
    # f.write('mystr')
    #
    # f.close()
    复制代码
    -w-----  -需要解码  encoding=' ' mode=''
    
     path=r'C:UsersAdministratorDesktop2.txt'
     file=open(path,mode='w',encoding='utf-8')
     file.write('adasdad')
     file.close()
    复制代码
    复制代码
    ----wb----直接打开 需要 写的时候需要制定 编码格式
    
     path=r'C:UsersAdministratorDesktop2.txt'
     file=open(path,'wb')
     file.write('哈哈哈'.encode('utf-8'))
     file.close()
    复制代码


    3 读写 r+ 不会删除原内容
    复制代码
    # f =open(r'C:UsersAdministratorDesktop1.txt','r+',encoding='utf-8')
    #
    # f.readline()
    # f.write('mystr')  # 如果读了 默认是在最后添加======  如果不读 只写  默认在最前写
    #
    # f.close()
    复制代码
    
    
    复制代码
    -a--
    
     path=r'C:UsersAdministratorDesktop3.txt'
     file=open(path,'a',encoding='utf-8')
     file.write('哈')
     file.close()
    复制代码
    ---ab---
     path=r'C:UsersAdministratorDesktop3.txt'
     file=open(path,'ab')
     file.write('哈'.encode('utf-8'))
     file.close()

    4 文件修改
    复制代码
     原文件 读取内容 ----->>>  修改后 ----->>> 重新新建一个文件 接收---->>> 删除原文件
    
    # import os
    # file= open(r'C:UsersAdministratorDesktop1.txt','r',encoding='utf-8')
    # file2=open(r'C:UsersAdministratorDesktop2.txt','w',encoding='utf-8')
    #
    # for line in file:
    #     mylist=line.split('|')
    #     mylist[0]=mylist[0]+'_handsomeguy'
    #     mystr='|'.join(mylist)
    #     # print(mystr)
    #     file2.write(mystr)
    # file.seek(0)
    # print(file.read())
    #
    # file.close()
    # file2.close()
    #
    #
    # os.remove(r'C:UsersAdministratorDesktop1.txt')
    # os.rename(r'C:UsersAdministratorDesktop2.txt',r'C:UsersAdministratorDesktop1.txt')
    
    
    # file2=open(r'C:UsersAdministratorDesktop2.txt','w',encoding='utf-8')
    # with open(r'C:UsersAdministratorDesktop1.txt','r',encoding='utf-8') as file1:
    #     for line in file1:
    #         mylist=line.split('|')
    #         mylist[0]=mylist[0][0:2]
    #         mystr='|'.join(mylist)
    #         file2.write(mystr)
    # file2.close()
    # 
    # import os
    # 
    # os.remove(r'C:UsersAdministratorDesktop1.txt')
    # os.rename(r'C:UsersAdministratorDesktop2.txt',r'C:UsersAdministratorDesktop1.txt')
    复制代码

     5 常用的文件操作函数方法

    按格式读长度----file.read(2)
    r--->字符
    rb--->字节
    ------seek-->>>> 后面是字节
    
    -------指定指针位置------file.seek(2)----字节数----gbk--2个字节一个汉字
    -------指定指针位置------file.seek(3)----字节数----utf-8--3个字节一个汉字
    --查看当前指针位置------file.tell()----
    --file.writable()------file.readable()----
    --------------file.readline()- 读一行--------------------------
    
    ---------------file.truncate()- 截取 指针位置前面的数据-----------------------
    
    --------------file.readlines()-----读取后全部保存到内存------------
    -------------一般文件操作没有完成硬盘上的时候,数据不会存在---------- ---------------file.flush()----从内存强刷到硬盘------------------
    readline() --------- 每行
    
    for line in file:
       print(line.read()) ========>>>>>  # python 2 xreadlines()
     关闭文件操作
    
    with open(r'C:UsersAdministratorDesktop3.txt',mode='rb') as file:
       file.read()
  • 相关阅读:
    salmon 报错:ESC[00mException : [rapidjson internal assertion failure: IsObject()] salmon quant was invoked improperly.
    报错:RSEM can not recognize reference sequence name chr1!(基因组的bam不能直接用rsem进行表达值计算)
    R: 使用tapply根据相同ID合并指定列
    linux:去除特定列为空格的行
    知乎一答:程序员为什么要关注管理
    如何掌握一门编程语言的运用
    谈谈程序员这个职业及前景
    Oracle学习笔记(2)--Centos 7 下11gR2部署
    用flask写一个简单的接口
    iptables命令详解
  • 原文地址:https://www.cnblogs.com/hzqblog/p/7515678.html
Copyright © 2020-2023  润新知