python bytes和bytearray_Python bytes和bytearray
bytes
bytes是Python 3中特有的,Python 2 里不区分bytes和str。
Python 2中
>>> type(b'xxxxx')
>>> type('xxxxx')
Python 3中
>>> type(b'xxxxx')
>>> type('xxxxx')
区别
bytes是byte的序列,而str是unicode的序列。
str 使用encode方法转化为 bytes
bytes通过decode转化为str
str转换成bytes:
In [9]: str1='人生苦短,我用Python!'
In [10]: type(str1)
Out[10]: str
In [11]: b=str1.encode()
In [12]: b
Out[12]: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'
In [13]: type(str1.encode())
Out[13]: bytes
bytes转换成str:
In [22]: b
Out[22]: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!'
In [23]: type(b)
Out[23]: bytes
In [24]: b.decode()
Out[24]: '人生苦短,我用Python!'
In [25]: type(b.decode())
Out[25]: str
在Python 2中由于不区分str和bytes所以可以直接通过encode()和decode()方法进行编码解码。而在Python 3中把两者给分开了这个在使用中需要注意。实际应用中在互联网上是通过二进制进行传输,所以就需要将str转换成bytes进行传输,而在接收中通过decode()解码成我们需要的编码进行处理数据这样不管对方是什么编码而本地是我们使用的编码这样就不会乱码。
bytearray
bytearray和bytes不一样的地方在于,bytearray是可变的。
In [26]: str1
Out[26]: '人生苦短,我用Python!'
In [28]: b1=bytearray(str1.encode())
In [29]: b1
Out[29]: bytearray(b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')
In [30]: b1.decode()
Out[30]: '人生苦短,我用Python!'
In [31]: b1[:6]=bytearray('生命'.encode())
In [32]: b1
Out[32]: bytearray(b'\xe7\x94\x9f\xe5\x91\xbd\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python!')
In [33]: b1.decode()
Out[33]: '生命苦短,我用Python!'
补充
Python2
>>> type('foo')
>>> type(u'foo')
>>> type(b'foo')
>>> bytes is str
True
>>> b'foo'[0]
'f'
Python3
>>> type('foo')
>>> type(u'foo')
>>> type(b'foo')
>>> bytes is str
False
>>> b'foo'[0]
102
python bytes和bytearray_Python bytes和bytearray相关推荐
- python bytes和bytearray_python bytes和bytearray、编码和解码
str.bytes和bytearray简介 str是字符数据,bytes和bytearray是字节数据.它们都是序列,可以进行迭代遍历.str和bytes是不可变序列,bytearray是可变序列,可 ...
- python基础入门:bytes 和 string转换的方法
Python 3 最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分. 文本总是 Unicode,由 str 类型表示,二进制数据则由 bytes 类型表示. Python 3 不会以任意隐 ...
- python bytes 改值_python3 bytes 和 string转换
前言 Python 3 最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分. 文本总是 Unicode,由 str 类型表示,二进制数据则由 bytes 类型表示. Python 3 不会以 ...
- python中如何将bytes格式转换为numpy ndarray
python中如何将bytes格式转换为numpy ndarray python中如何将bytes格式转换为numpy ndarray
- Python里 int 和 bytes互转的方法
Python里 int 和 bytes互转的方法 在Python3之前,一般是使用下面的方法: >>> import struct >>> struct.pack( ...
- python之str与bytes互转
# -*- coding: utf-8 -*- bytes_object = b"example" # str object str_object = "example& ...
- python bytes 改值_Python3 bytes() 函数详解 将参数转为不可变的字节数组
Python3 bytes() 函数详解 将参数转为不可变的字节数组 bytes()函数的主要用途是将参数转换为一个新的字节数组,它是一个不可变的整数序列,它的取值范围是0 <= x < ...
- Python系列(五):bytes和str的区别与联系
Bytes和Str的区别 在Python3中,字符序列有两种类型:bytes和str.bytes类型是无符号的8位值(通常以ASCII码显式),而str类型是Unicode代码点(code point ...
- Python字节转换(Bytes conversion)
发现一个好用的Python函数,用于将字节Bytes转为易于人阅读的量级格式,包括KB/MB/GB/TB等: def bytes2human(n):# http://code.activestate. ...
最新文章
- 图解:什么是Raft算法?
- QT 实用代码片段 (持续更新)
- java.lang.IllegalStateException: 启动子级时出错
- [转载]C#中注册Dll的问题
- Effective C# 原则34:创建大容量的Web API(译)
- mysql convert报错_部署mysql版本项目问题记录
- 测试工作——XPath
- 程序员抱怨:父母没文化没见识,当初努力学习远离看来是正确的
- mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?
- Koding VM 配置nginx 小记
- [英语阅读笔记]Creating Master Detail Pages using GridView
- 从shell(终端)中退出python
- 【论文泛读05】基于Conv-LSTM的短期交通流预测
- Asp 解析 XML并分页显示
- 泰勒成立的基本原理(转载)
- php定义一个矩形类rectangle,Python3面向对象—点和矩形类
- 思科网院 Routing and Switching Essentials ( 版本 6.00) - RSE 6.0 第 1 章考试答案
- python加密excel
- 如何修改电脑密码(在不知道密码的前提下)
- WinPcap编程之HTTP协议还原