• Python day7


    一.字符编码

    1 以什么编码存的就要以什么编码取出
    ps:内存固定使用unicode编码,
    我们可以控制的编码是往硬盘存放或者基于网络传输选择编码

    2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式
    #unicode----->encode(utf-8)------>bytes
    拿到bytes,就可以往文件内存放或者基于网络传输
    #bytes------>decode(gbk)------->unicode

    3 python3中字符串被识别成unicode
    python3中的字符串encode得到bytes

    4 了解
    python2中的字符串就bytes
    python2中在字符串前加u,就是unicode
    二。文件处理
    #open:
    #1 会向操作系统发起系统调用,操作会打开一个文件
    #2 在python程序中会产生一个值指向操作系统打开的那个文件,我们可以把该值赋值一个变量
    
    #回收资源
    #1 f.close():一定要做,关闭操作系统打开的文件,即回收操作系统的资源
    #2 del f:没必要做,因为在python程序运行完毕后,会自动清理与该程序有关的所有内存空间
    
    #文本文件:只读模式,文件不存在报错
    # f=open(r'aaaa.py','r',encoding='utf-8')
    # print(f.read())
    # print(f.read
    #
    # line(),end='')
    # print(f.readlines())
    # print(f.readable())
    # print(f.writable()) #False
    # f.close()
    
    #文本文件:只写模式,文件不存在则创建空文件,文件存在则清空
    # f=open('new.txt','w',encoding='utf-8')
    # f.write('1111111
    ')
    # f.writelines(['22222
    ','3333
    ','444444
    '])
    # # print(f.writable())
    # f.close()
    
    #文本文件:只追加写模式,文件不存在则创建,文件存在
    # f=open('new_2','a',encoding='utf-8')
    # print(f.readable())
    # print(f.writable())
    
    # f.write('33333
    ')
    # f.write('44444
    ')
    # f.writelines(['5555
    ','6666
    '])
    
    # f.close()
    
    
    #rb
    # f=open('aaaa.py','rb')
    # print(f.read().decode('utf-8'))
    
    # f=open('1.jpg','rb')
    # data=f.read()
    
    #wb
    # f=open('2.jpg','wb')
    # f.write(data)
    # f=open('new_3.txt','wb')
    # f.write('aaaaa
    '.encode('utf-8'))
    
    #ab
    # f=open('new_3.txt','ab')
    # f.write('aaaaa
    '.encode('utf-8'))
    

      三。文件补充

    #上下文管理
    with open('aaaa.py','r',encoding='utf-8') as read_f,
            open('aaaa_new.py','w',encoding='utf-8') as write_f:
        data=read_f.read()
        write_f.write(data)
    
    
    #循环取文件每一行内容
    with open('a.txt','r',encoding='utf-8') as f:
        while True:
            line=f.readline()
            if not line:break
            print(line,end='')
    
        lines=f.readlines() #只适用于小文件
        print(lines)
    
        data=f.read()
        print(type(data))
    
    
        for line in f: #推荐使用
            print(line,end='')
    
    
    
    
    #文件的修改
    #方式一:只适用于小文件
    import os
    with open('a.txt','r',encoding='utf-8') as read_f,
            open('a.txt.swap','w',encoding='utf-8') as write_f:
        data=read_f.read()
        write_f.write(data.replace('alex_SB','alex_BSB'))
    
    os.remove('a.txt')
    os.rename('a.txt.swap','a.txt')
    
    
    #方式二:
    import os
    with open('a.txt','r',encoding='utf-8') as read_f,
            open('a.txt.swap','w',encoding='utf-8') as write_f:
        for line in read_f:
            write_f.write(line.replace('alex_BSB','BB_alex_SB'))
    
    os.remove('a.txt')
    os.rename('a.txt.swap','a.txt')
    

      

  • 相关阅读:
    Redis 安装和五大类型常用命令
    什么是cpu利用率和负载
    openfeign源码分析
    Vavr 学习
    idea打不开
    java dump命令
    Azure DevOps (十三) 通过Azure Devops部署一个Go的Web应用
    Azure DevOps (十二) 通过Azure Devops部署一个SpringBoot应用
    Typora常用快捷键
    premere2020 pr学习导航主页
  • 原文地址:https://www.cnblogs.com/jmblog/p/7230612.html
Copyright © 2020-2023  润新知