Python中bytes与str类型的区别及相互转换详解

Jasper
Jasper
发布时间:2026-10-13| 6人浏览过
原创

本文详细解析Python中bytes(字节序列)与str(字符串)的区别,重点介绍两者之间的转换方法。通过encode()和decode()函数实现编码与解码过程,并演示如何将字符串转换为字节对象以及反向操作,帮助开发者理解字符编码在计算机处理中的作用。

bytes与string的基本区别

一、bytes和string区别

在Python中,bytes通常被称为字节序列,它存储的是原始字节数据而非人类可读的字符。其取值范围限制在0到255之间,且在输出时通常会以字母b作为前缀标识;而string则是Python中标准的字符串类型,用于表示文本信息。

bytes类型主要设计用于计算机底层数据的存储与传输,因为它直接对应二进制数据;相比之下,string类型更侧重于供人类阅读和交互,因为它包含了解码后的字符信息。

当string经过编码(encode)处理时,会转化为二进制对象(bytes),以便计算机进行识别和处理;反之,bytes经过解码(decode)处理后,会转化为string供人类查看。需要注意的是,解码过程依赖于特定的编码规则,如果bytes中的数据不符合该编码规则(例如\xc8不在UTF-8的有效范围内),则会导致解码失败。

bytes与string类型示例


if __name__ == "__main__":
 # 字节对象b
 b = b"shuopython.com"
 # 字符串对象s
 s = "shuopython.com"
 print(b)
 print(type(b))
 print(s)
 print(type(s))

输出结果:

b'shuopython.com' <class 'bytes'> shuopython.com <class 'str'>

二、bytes转string

将string转换为bytes的过程称为编码(encode),即通过指定的编码格式将字符串转化为字节序列。

string转换为bytes的方法


# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
 
@File:python_bytes_string.py
@Time:2020/2/26 21:25
 
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
if __name__ == "__main__":
 s = "shuopython.com"
 # 将字符串转换为字节对象
 b2 = bytes(s, encoding='utf8') # 必须制定编码格式
 # print(b2)
 
 # 字符串encode将获得一个bytes对象
 b3 = str.encode(s)
 b4 = s.encode()
 print(b3)
 print(type(b3))
 print(b4)
 print(type(b4))

输出结果:

b'shuopython.com' <class 'bytes'> b'shuopython.com' <class 'bytes'>

三、string转bytes

将bytes转换为string的过程称为解码(decode),即通过指定的编码格式将字节序列还原为字符串。

bytes转换为string的方法


if __name__ == "__main__":
 # 字节对象b
 b = b"shuopython.com"
 print(b)
 b = bytes("猿说python", encoding='utf8')
 print(b)
 s2 = bytes.decode(b)
 s3 = b.decode()
 print(s2)
 print(s3)

输出结果:

b'shuopython.com' b'\xe7\x8c\xbf\xe8\xaf\xb4python' 猿说python 猿说python

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。