Python中bytes字节串和string字符串之间的转换方法

 更新时间:2022年01月20日 15:55:50   作者:剑客阿良_ALiang  
python中字节字符串不能格式化,获取到的网页有时候是字节字符串,需要转化后再解析,下面这篇文章主要给大家介绍了关于Python中bytes字节串和string字符串之间的转换方法,需要的朋友可以参考下

背景

在工作中经常会碰到字节串(bytes)与字符串(string)之间转换的问题,做个记录。

bytes只负责用字节序列的形式(二进制形式)存储数据,不关心数据本身是图片、文字、视频等等。如果需要使用并且展示的话,按照对应的解析规则处理,就可以拿到对应类型的数据。如常见的字符串类型,只需要使用对应的字符编码格式,就可以拿到字符串的内容。

下面会用一些代码来表示bytes的构造,以及和字符串之间的转换。

代码

先看一下代码。

#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author  : huyi
@file   : byte_to_string.py
@ide    : PyCharm
@time   : 2021-12-23 11:47:45
"""
# 不指定字符集
b1 = b'I love u , baby'
print('b1', b1)
print(b1[:-3])
 
# 指定字符集
b2 = bytes('今天天气真好/哈哈', encoding='UTF-8')
print('b2', b2)
 
# 字符串转为bytes
str1 = '元宇宙会导致人类文明的停滞吗?'
b3 = str1.encode('UTF-8')
print('b3', b3)
 
# bytes转为字符串方法1
str2 = str(b3, 'UTF-8')
print('str2', str2)
 
# bytes转为字符串方法1
str3 = b3.decode('UTF-8')
print('str3', str3)

代码说明:

1、可以使用字符串前面加小写字母b的方式定义bytes,但是不建议,建议使用b2的定义方式,可以调整字符编码。

2、字符串类型的数据可以通过encode方法,将字符串按照字符编码转为bytes。

3、bytes也可以通过str的构造指定字符编码或者decode方法,将bytes转为字符串。

验证一下

PyDev console: starting.
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32
runfile('D:/spyder/csdn/tool/byte_to_string.py', wdir='D:/spyder/csdn/tool')
b1 b'I love u , baby'
b'I love u , b'
b2 b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\xa4\xa9\xe6\xb0\x94\xe7\x9c\x9f\xe5\xa5\xbd/\xe5\x93\x88\xe5\x93\x88'
b3 b'\xe5\x85\x83\xe5\xae\x87\xe5\xae\x99\xe4\xbc\x9a\xe5\xaf\xbc\xe8\x87\xb4\xe4\xba\xba\xe7\xb1\xbb\xe6\x96\x87\xe6\x98\x8e\xe7\x9a\x84\xe5\x81\x9c\xe6\xbb\x9e\xe5\x90\x97\xef\xbc\x9f'
str2 元宇宙会导致人类文明的停滞吗?
str3 元宇宙会导致人类文明的停滞吗?

附:bytes和string区别

1.python bytes 也称字节序列,并非字符。取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰;string 是python中字符串类型;

2.bytes主要是给在计算机看的,string主要是给人看的;

3.string经过编码encode,转化成二进制对象,给计算机识别;bytes经过解码decode,转化成string,让我们看,但是注意反编码的编码规则是有范围,\xc8就不是utf8识别的范围;

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'>

总结

到此这篇关于Python中bytes字节串和string字符串之间转换的文章就介绍到这了,更多相关Python bytes字和string转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python批量修改文件夹及其子文件夹下的文件内容

    python批量修改文件夹及其子文件夹下的文件内容

    这篇文章主要为大家详细介绍了python批量修改文件夹及其子文件夹下的文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python报错SyntaxError:unexpected EOF while parsing的解决办法

    Python报错SyntaxError:unexpected EOF while parsing的解决办法

    在运行或编写一个程序时常会遇到错误异常,这时python会给你一个错误提示类名,告诉出现了什么样的问题,下面这篇文章主要给大家介绍了关于Python报错SyntaxError:unexpected EOF while parsing的解决办法,需要的朋友可以参考下
    2022-07-07
  • Python面向对象编程之类的概念

    Python面向对象编程之类的概念

    这篇文章主要介绍了Python面向对象编程之类的概念,Python语言的中所有数据类型都是对象、函数是对象、模块是对象;所有类都是继承最基础的类object,面向对象编程又叫OOP,下文了解更多具体内容,需要的朋友可以参考一下
    2021-11-11
  • Python多线程实现支付模拟请求过程解析

    Python多线程实现支付模拟请求过程解析

    这篇文章主要介绍了python多线程实现支付模拟请求过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • jupyter notebook内核启动失败问题及解决方法

    jupyter notebook内核启动失败问题及解决方法

    这篇文章主要介绍了解决jupyter notebook内核启动失败问题,本文给大家介绍了问题原因分析及解决方案,图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Python pygame实现中国象棋单机版源码

    Python pygame实现中国象棋单机版源码

    今天给大家带来的是关于Python实战的相关知识,文章围绕着用Python pygame实现中国象棋单机版展开,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06
  • Python写入MySQL数据库的三种方式详解

    Python写入MySQL数据库的三种方式详解

    Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等。本文总结了Python写入MySQL数据库的三种方式,需要的可以参考一下
    2022-06-06
  • python 迭代器和iter()函数详解及实例

    python 迭代器和iter()函数详解及实例

    这篇文章主要介绍了python 迭代器和iter()函数详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • Django框架之路由用法

    Django框架之路由用法

    这篇文章介绍了Django框架之路由的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • python 获取星期字符串的实例

    python 获取星期字符串的实例

    这篇文章主要介绍了python 获取星期字符串的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论