zoukankan      html  css  js  c++  java
  • python语言之字符串与字节

    (一)字符串的本质

    内存中总是存储解码以后的文本,编码只作用于文件存储和中间媒介转换

    (二)常见的字符编码

    #获得代码点
    ord('A')
    65
    #从代码点获取对应字符
    chr(65)
    'A'
    
    • ASCII(存储一个Byte 0-127)
    • latin-1(存储一个Byte 128-255)
    • UTF16 (两个字节存储字符)
    • UTF32 (四个字节存储字符)
    • UTF8 (可变字节)

    (三)字节与文本的编解码

    编码

    转变为bytes

    s1 = 'ABCD'
    s1.encode('ascii')
    b'ABCD'
    s1 = '中国'
    s1.encode('utf8')
    b'xe4xb8xadxe5x9bxbd'
    --------------------------------------------
    #从文件中读取
    open('data.txt','rb').read()
    b'xd6xd0xb9xfa'
    ---------------------------------------------
    bytes('中国','utf8')
    b'xe4xb8xadxe5x9bxbd'
    bytes([64,75,85])
    b'@KU'
    ---------------------------------------------
    b = b'abc'
    type(b)
    <class 'bytes'>
    

    转变为bytearray

    s1 = '中国'
    ba = bytearray(s1,'utf8')
    type(ba)
    <class 'bytearray'>
    ba
    bytearray(b'xe4xb8xadxe5x9bxbd')
    ba.append(21)#不能超过256
    ba
    bytearray(b'xe4xb8xadxe5x9bxbdx15')
    ba + b'abc'
    bytearray(b'xe4xb8xadxe5x9bxbdx15abc')
    ba.decode('utf8')
    '中国x15'
    

    不指定编码格式,系统默认采用utf8

    往文件中写数据,默认编码格式为操作系统编码格式

    解码

    b = b'xe4xb8xadxe5x9bxbd'
    b.decode('utf8')
    '中国'
    ---------------------------------------------
    bytearray(b'xe4xb8xadxe5x9bxbdx15abc')
    ba.decode('utf8')
    '中国x15'
    

    (四)BOM处理

    BOM:字节顺序标记

    open('data.txt','W',encoding='utf-8-sig')
    open('data.txt','r',encoding='utf-8-sig')
    
  • 相关阅读:
    argparse模块的使用
    tf.stack() /tf.unstack()
    什么是tensor
    tf.size()函数
    tf.nn.l2_loss()的用法
    CNN中的卷积
    tf.reverse()
    学习音视频编程技术 博客
    shell 批量计算MD5值
    线程池的实现
  • 原文地址:https://www.cnblogs.com/gdy1993/p/12168693.html
Copyright © 2011-2022 走看看