zoukankan      html  css  js  c++  java
  • Python 字符编码、文件操作1

    今日内容:

    • 1.字符编码

    • 2.字符与字节

    • 3.文件操作

    一、字符编码

    了解:
    cpu:将数据渲染给用户
    内存:临时存放数据,断电消失
    硬盘:永久存放数据,断电后不消失
    

    1.1 什么是编码?

    人类能够识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的交互,一定要一个媒介进行转化
    

    1.2 文件出现乱码的原因

    存数据与读数据采用的编码表不一致
    

    1.3 软件打开文件读取数据的流程

    1.打开文件
    2.往计算机发送一个打开文件的指令,来打开文件
    3.读取数据渲染给用户
    

    1.4 Python解释器打开py文件

    1.打开软件(Python解释器)
    2.往计算机发送一个打开文件的指令,来打开文件
    3.逐行解释打开的文件内容(若存取编码不一致,则无法正常解释,程序崩溃),将执行结果展示给用户
    
    解释失败的原因:
        py2默认按ASCII来解释文件内容
        py3默认按utf-8来解释文件内容
    

    1.5 设置默认编码

    在py文件头:
        # encoding:编码表 ( # coding:编码表 )
        
    功能:告诉Python解释器按照什么编码来解释内容
    

    1.6 编码解码

        s1 = u'123' # unicode 字符串,默认字符串
        s2 = b'123' # 字节字符串
        s3 = r'12
    3' # 原义字符串:不对字符串做任何操作
    
    编码与解码:
        s ='154呵呵'
        s1 = bytes(s, encoding='utf-8') # 编码
        print(s1)
        print(b'xe4xbdxa0xe5xa5xbd'.decode('utf-8')) # 解码
    
    编码表的发展史
        1.ASCII
        字母、数字、英文符号与计算机0,1标识符的对应关系
        
        2.各国语言的编码表
        中国:GB2312、GBK、GB18030 先后出现的汉字编码表
        日本:shift_JIS 
        韩国:Euc_kr
        
        3.通用的编码表
        制造一个可以完成万国字符与计算机0,1标识符的对应关系的编码表
        编码表:Unicode表
        py2:ASCII,没有用Unicode,因为py2出生的比Unicode还早
        py3:utf-8,也就是可变长的Unicode表,本质是一样的
        
        思考:Unicode与UTF-8是什么关系?
        二者关系:
        unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
        Unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
        UTF-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
        
        总结:内存都是按Unicode存储数据,硬盘和CPU采用UTF-8来存取数据
    

    二.字符与字节

    2.1 字符

    通常意义中使用的记号,抽象意义上的符号。像‘1’,‘人’,‘a’等
    ASCII码表中,标点、符号、数字、大小写字母都占一个字节
    unicode表中,所有字符都占两个字节
    

    2.2 字节(Byte)

    1个字节表示的是 8 位二进制(0,1)
    

    三.文件操作

    详解文件操作见 [ Python 入门基础 7 --文件操作 ] (https://www.cnblogs.com/xt12321/p/10609499.html)
    文件:硬盘中一块存储空间(虚拟的文件)
    文件操作:根据文件名来操作硬盘的那块存储空间,读 read 写 write
    

    3.1 使用文件的三个步骤

    1.打开文件
    变量名 = 文件空间
    文件路径 操作模式(读/写)编码
    
    f = open('a.txt','r',encoding = 'utf-8')
    
    2.操作文件
     data = f.read(3) # 将所有的内容读取出来,如果设置读取长度,按规定长度读取数据
    print(data)
    # f.readline() # 一次读取一行内容
    # f.readlines() # 一次性全部读取出来
    
    3.关闭文件
    f.colse() # 释放操作系统对文件的持有,变量f还被应用程序持有
    

    3.2 文件操作模式

    主模式:r:读 、 w:写 、a:追加
    从模式:b:按字节操作 、 t:按字符操作 、 +:可读可写
    了解:x:异常写 、 U:被遗弃了
    
    # 基础写
    # 文件不存在:会新建文件,再操作文件
    # 文件存在:先清空文件,再操作文件
    w = open('b.txt', 'w', encoding='utf-8')
    w.write('4567')
    w.close
    
  • 相关阅读:
    爬虫必备的web知识
    pythoth 中常用的魔法方法
    Python数据分析matplotlib可视化之绘图
    前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示
    用python文件操作实现复制图片、视频
    彩票购买系统(26选5)-初级版本
    封装系统字符串内置函数,实现类似功能
    部署live555到云
    腾讯云:基于 Ubuntu 搭建 VNC 远程桌面服务
    2.Linux文件IO编程
  • 原文地址:https://www.cnblogs.com/xt12321/p/10600696.html
Copyright © 2011-2022 走看看