• 文件处理后续


    文件处理(续)

    一、文件的打开模式b模式
    强调:
    1、与t模式类似不能单独使用,必须是rb,wb,ab
    2、b模式下读写都是以bytes单位的
    3、b模式下一定不能指定encoding参数

    1. 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))


    wb模式
    已写入的模式打开文件,注意原数据会被清空
    with open('b.txt',mode='wb') as f:
    msg='你好啊,吴三炮'
    f.write(msg.encode('gbk'))
    with open('b.txt',mode='wb') as f:
    msg='你好啊,吴三炮'
    f.write(msg.encode('utf-8'))

    ab模式
    已追写的方式开打开文件
    with open('b.txt',mode='ab') as f:
    f.write('你好'.encode('utf-8'))

    with open('1.jpg','rb') as f:
    for line in f:
    print(line)

    注:上述操作都已以bytes单位进行操作

    了解知识点: 可读可写
    r+t 可读可写但是光标一打开文件会在文件头。
    with open('b.txt','r+t',encoding='utf-8') as f:
    print(f.readable())
    print(f.writable())
    print(f.readline())
    f.write(' 吴大炮你也号 ')
    w+t 可读可写但是每次打开文件都会将文件内容清空

    a+t 可读可写每次打开光标都会在文件内容最后

    文件的修改

    with open('user.txt','r+',encoding='utf-8') as f:
    f.seek(9) #偏移量的单位是字节
    # print(f.tell())
    f.write('[老男孩第二帅的人]')
    注意:如果直接修改文件按照硬盘的保存原理会覆盖后面的字符,而不像正常编辑一样会自动让位。

    修改文件方式一:
    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)

    #修改文件方式二:
    #1、以读的方式打开原文件,以写的方式打开一个新文件
    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') # 使用外部模块删除user.txt文件
    os.rename('user.txt.swap','user.txt') # 使用外部模块将user.txt.swap文件名改为user.txt
  • 相关阅读:
    母版
    扣点计算
    付费推广的投入产出比达到多少才合理?
    关于京东POP和采销双平台选择合作
    学习Swift--枚举的初步认识 --个人备忘 大神勿喷
    前台操作及技巧的一些文档
    ABAP 四舍五入函数
    设置ALV 行颜色
    初学笔记
    模块 BAPI
  • 原文地址:https://www.cnblogs.com/zhaodafa/p/8630430.html
Copyright © 2020-2023  润新知