• 第八天


    第八天

    文件打开模式的补充

    '''
    除了可读·可写之外剩下都是自己的特性
    r+
    w+
    a+
    '''
    with open(r'r.txt','r+',encoding='gbk') as f:
       f.write('绘梨衣')
       print(f.read())
       # print(f.readable())
       # print(f.writable())

    with open(r'w.txt', 'w+', encoding='gbk')as a:
       a.write('绘梨衣的幻想乡')
       a.seek(0,0)
       print(a.read())


    # with open(r'a.txt','a+',encoding='gbk') as b:
    #     b.write('后悔不已')
    #     b.seek(0,0)
    #     print(b.read())

    r+:在不操作光标的情况下写入内容,会从开头开始,要是有内容的,会覆盖相对用的字节的内容,如果文件不存在会报错,先写在读,不能直接读出新内容

    w+:不能直接读取文件之前有的内容,会被清除,写入内容会覆盖掉文件里全部原内容,不移动光标的情况下,也是不能直接新是写入的内容,如果文件不存在会创建新文件写入内容,

    a+:不能直接反馈文件内容,写入内容会在原内容最后开始写入,不移光标的情况下,不能反馈新内容,如果文件不存在,会新建一个文件写入,也会有返回值

    文件内光标的移动

    '''
    f.seek(offset,whence)
    offset:,针对的是字节
    whence:指定光标位置从何开始
      0:从文件开头
      1:从当前位置
      2:从文件末尾
       
    补充:
      utf-8:
          中文是3个bytes
          英文是1个bytes
      gbk:
          全部都是2个bytes

      open函数不设置encoding,默认是gbk
      与encode一毛钱都没有,encoding只是一个参数

      除了read里面的参数是针对字符,其他都是针对字节
      但rb模式下read里针对的也是字节
    '''

    with open(r'a.txt','r',encoding='gbk') as f:
       f.seek(6,0)
       print(f.read(1))
       
    with open(r'a.txt','r',) as f:
       f.seek(3,1)
       print(f.tell())
       
       print(f.read(6).encode('gbk'))

    写入文件

    import time

    res = time.strftime('%Y-%m-%d %H:%M:%S')
    # print(res)

    with open(r'a.txt','a',encoding='utf-8')as f:
       f.write(f'{res}: 邪王之眼-冻结时空 ')

    获取文件内容

    with open(r'a.txt','r',encoding='utf-8') as f:
       f.seek(0, 2)
       while True:
           res = f.readline()
           if res:
               print({res})
               break

    修改文件内容

    with open(r'a.txt','r',encoding='gbk')as f:
       data = f.read()
       print(data)
       print(type(data))

    with open(r'a.txt','w',encoding='gbk')as f:
       res = data.replace('开开心心','开心心')
       f.write(res)
       
       
    with open(r'b.txt','r',encoding='gbk')as rf,
       open(r'b_wap.txt','w',encoding='gbk')as wf:
       data = rf.read()
       res = data.replace('开开心心','开心心')
       wf.write(res)

    os.remove('b.txt')
    os.rename('b_wap.txt','b.txt')

     

  • 相关阅读:
    postman一健导入swagger api所有接口
    pycharm 通过project interpreter国内镜像源设置
    Linux常用软件tree,autojump,lrzsz安装
    文献下载好用网站推荐
    SCIP,Clp,Gurobi和Cplex安装
    Linux下SuperLU安装
    【微服务理论】康威定律
    项目实战:动态系统的设计(类似朋友圈)
    认知提升:工作和薪资
    博客园美化 Cnblogs-Theme-SimpleMemory
  • 原文地址:https://www.cnblogs.com/zhangjinyi97/p/11823036.html
Copyright © 2020-2023  润新知