zoukankan      html  css  js  c++  java
  • Python编程Day7——字符编码、字符与字节、文件操作

    一、字符编码

    重点 *****


    1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
    2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
    3. 编码操作:编码encode()、解码decode()
    4.
    了解:编码表的发展史

    A、ascii(ASCII)表:字母、数字、英文符号与计算机01标识符的对应关系
    思考:如何将128个字符用01完全标签
    二进制:1111111=====>>>255====>>1bytes(1字节)====>>8个二进制位

    B、中国研究汉字与计算机01标识符的对应关系:gb2312====》》GBK===》》GB18030

    日本:Shift——JIS

    C、制造一个可以完成万国与计算机01标识符的对应关系编码表

    编码表;Unicode表
    py2:ascii,没有按万国编码,原因py2要诞生要先有万国编码
    py3:utf-8.采用万国编码来解释文本内容



    编码类型  计算机存取方式 汉字存储 英文存储  空间节省  读取效率
    Unicod
     
    内存 2个字节 2个字节 占据空间较多  极高 
    utf-8
     
    硬盘、cpu 3-6个字节 1个字节 占据空间较少  低 

    5、文件头****


    告诉puthon解释器按照什么编码来解释文件内容
    功能:编码解码:原义字符串,不对字符串内部做任何操作(eg::\n的转化)

    r'abc\nabc'>>>>输出'abc\nabc'
    u''之间转化b
    编码:u''.encode('utf-8')|bytes(b'',encode('utf-8'))
    解码:b''.ecode('utf-8')|str(b'',encode('utf-8'))
    

     

    知识储备

    电脑三大核心:cpu - 内存 - 硬盘(数据的存取过程)
    软件及python解释器读取文件过程:启动 - 读取 - 展示|解释执行
    python2环境的文件头:# coding: 编码格式

    简介与发展


    1. ascii - 各国编码 - 万国编码
    2. 存取不一致的乱码现象
    3. unicode与utf-8

    核心

    编码操作:编码encode()、解码decode()


    二、字符与字节

    重点*****


    1. 字节的存储方式:8个二进制位
    2. 字符所占字节数:根据编码的不同,所占字节数可能不同

    了解


    u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')

     3、三种字符串

    Unicode字符串,默认字符串
    s1=u'abc你好\n不好'
    print(s1)  #>>>输出abc你好     n不好
    

     

    字节字符串
    s2=b'abc'
    print(s2)  #>>>输出b'abc'
    

      

    
    
    原义字符串:不对字符串内部做任何操作
    s3=r'abc你好\n不好'
    print(s3)  #>>>输出abc你好\n不好
    

      

    4、编码与解码
    s='123呵呵'
    n_b=bytes(s,encoding='utf-8')
    print(n_b)
    
    # 输出结果为  b'123\xe5\x91\xb5\xe5\x91\xb5'
    b=b'123\xe5\x91\xb5\xe5\x91\xb5'
    n_s=str(b,encoding='GBK') # 可以换成gbk的字符编码
    print(n_s)
     5、 重点********
    将u字符串编码b字符串
    print(u'你好'.encode('utf-8'))
    将b字符串解码成u字符串
    print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))

    三、文件操作

    重点*****


    1. 文件操作的三步骤:打开文件 - 使用文件 - 关闭文件
    A、打开文件,变量名=文件空间  文件路径、操作模式(读/写)、编码
    f=open('a.txt','r',ebcoding='utf-8')(新建a.txt文件-填写相应的内容)
    

      

    B、操作文件
    data=f.read(2) 将所有内容读取出来,如果设置读取长度如(2),按照规定长度读取数据
    print(data)
    

      

    一次读取一行
       line=f.readline()
       print(line)
       line=f.readline()
       print(line)
    

      

    按行一次性全部读取
       lines=f.readlines()
       print(lines)
    

      

    逐步一行一行读取
    l=[]
    for line in f:
       l.append(line)
    print(l)
    

      

    去重
    s=set()
    for line in f:
      s.add(line)
    print(s)
    

      

    C、关闭文件
    f.close()  是否操作心态对文件的持有,变量f还被应用程序持有
    del f 系统自动回收
    print(f)
    

      

    2. 文件操作三要素:文件源、操作模式、编码
    3. with语法:with open(...) as 别名, ..., open(...) as 别名: pass
    4. 重点方法:read() | write() | readline() | close() | f.flush() | f.seek()
    5、操作模式 w
    主模式:r:读 | w:写 | a追加
    从模式:b :按字节操作照| t:按照字符操作 | +:可读可写
    了解:x :异常写| U;被遗弃了
    基础写
    文件不存在:会新建文件,再操作文件
    问价存在:先清空文件,在操作文件
    w = open('b.txt', 'w', encoding='utf-8')
       w.write('456')
    
       w.close()
    
       print('end')
    

     

    操作方法


    读:read() | readline() | readlines()
    写:write() | writelines() | flush()
    光标:seek() | tell()
    特征:encoding | closed

    了解:readable() | writable() | name

    案例


    1. 文件复制
    2. 文件修改

    了解:py文件脚本机制

     

     

  • 相关阅读:
    PHP 之sha256 sha512封装
    PHP 之中文转为拼音
    Redis 之仿微博demo
    PHP操作Redis相关函数
    存储过程和变量
    视图
    查询
    约束
    基础一
    轮播图--JS手写
  • 原文地址:https://www.cnblogs.com/zhouqinmei/p/10600447.html
Copyright © 2011-2022 走看看