python3 字符串str和bytes相互转换

目录
  • 1.相关基础
  • 2.str和bytes相互转换
    • 2.1 bytes->str
    • 2.2 str->bytes

1.相关基础

python3中有两种字符串类型:strbytes

python编码问题可以参考文章

strunicode编码格式保存在内存

所以使用时,不用管前面要不要加u

(python2中需要考虑,不加u的话,在一些场合会报错)

#!/usr/bin/python3
str0="i am fine thank you"
 
print(type(str0))
print(str0)
 
str0=u"i am fine thank you"
 
print(type(str0))
print(str0)
 
# <class 'str'>
# i am fine thank you
# <class 'str'>
# i am fine thank you

定义byte类型时,在字符串前加b

#!/usr/bin/python3
str0=b"i am fine thank you"
 
print(type(str0))
print(str0)
 
# <class 'bytes'>
# b'i am fine thank you'

2.str和bytes相互转换

在文件传输过程中,通常使用bytes格式的数据流,而代码中通常用str类型,因此strbytes的相互转换就尤为重要。

2.1 bytes->str

#!/usr/bin/python3
 
bytes_data = b'this is a message'
print(type(bytes_data))
print(bytes_data)
 
# 方法一:
str_data = str(bytes_data, encoding='utf-8')
print(type(str_data))
print(str_data)
 
# 方法二:
str_data = bytes_data.decode('utf-8')
print(type(str_data))
print(str_data)
 
# <class 'bytes'>
# b'this is a message'
# <class 'str'>
# this is a message
# <class 'str'>
# this is a message

2.2 str->bytes

#!/usr/bin/python3
 
str_data = 'this is a message'
print(type(str_data))
print(str_data)
# 方法一:
bytes_data = bytes(str_data, encoding='utf-8')
print(type(bytes_data))
print(bytes_data)
# 方法二:
bytes_data = str_data.encode('utf-8')
print(type(bytes_data))
print(bytes_data)
 
# <class 'str'>
# this is a message
# <class 'bytes'>
# b'this is a message'
# <class 'bytes'>
# b'this is a message'

到此这篇关于python3 字符串str和bytes相互转换的文章就介绍到这了,更多相关python3 str与bytes内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python写一个字符串数字后缀部分的递增函数

    需求:Python处理重名字符串,添加或递增数字字符串后缀 对于2个重名的字符串,添加数字后缀,比如两个重复的字符串s1 = “name”, s2 = “name”,将s2的名称设置为name_1对应3个或多个重名的字符串,数字部分实现递增,初始时s1=s2=s3=“name”,重命名后得到s1=“name”, s2=“name_1”, s3=“name_2”要灵活处理字符串问题,使用re模块最为方便下面是一个对带有下划线+数字的后缀字符串递增的方法 def increase_string_su

  • python实现写数字文件名的递增保存文件方法

    如下所示: col = [] img = "test1" img1 = "test2" col.append(img) col.append(img1) data=np.array(col) np.savetxt('/public/home/student6/test/test.csv',data,fmt='%s') col=[] img2 = "test3" img3 = "test4" col.append(img2) c

  • python3 字符串str和bytes相互转换

    目录 1.相关基础 2.str和bytes相互转换 2.1 bytes->str 2.2 str->bytes 1.相关基础 python3中有两种字符串类型:str和bytes python编码问题可以参考文章 str以unicode编码格式保存在内存 所以使用时,不用管前面要不要加u (python2中需要考虑,不加u的话,在一些场合会报错) #!/usr/bin/python3 str0="i am fine thank you"   print(type(str0)

  • python3 字符串str和bytes相互转换

    目录 1.相关基础 2.str和bytes相互转换 2.1 bytes->str 2.2 str->bytes 1.相关基础 python3中有两种字符串类型:str和bytes python编码问题可以参考文章 str以unicode编码格式保存在内存 所以使用时,不用管前面要不要加u (python2中需要考虑,不加u的话,在一些场合会报错) #!/usr/bin/python3 str0="i am fine thank you"   print(type(str0)

  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 bytes([1,2,3,4,5,6,7,8,9]) bytes("python"

  • python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用

    在抓取网络数据的时候,有时会用正则对结构化的数据进行提取,比如 href="https://www.1234.com"等.python的re模块的findall()函数会返回一个所有匹配到的内容的列表,在将数据存入数据库时,列表数据类型是不被允许的,而是需要将其转换为元组形式.下面看下,str/list/tuple三者之间怎么相互转换. class forDatas: def __init__(self): pass def str_list_tuple(self): s = 'abc

  • 浅析Python 3 字符串中的 STR 和 Bytes 有什么区别

    Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes.Python2的str相当于Python3的Bytes,而Unicode相当于Python3的Bytes. Python2里面的str和Unicode是可以混用的,在都是英文字母的时候str和unicode没有区别. 而Python3严格区分文本(str)和二进制数据(Bytes),文本总是Unicode,用str类型,二进制数据则用Bytes类型表示,这样严格的限制也让我们对如何使用它们有

  • Python字符串str和json格式相互转换

    目录 1.通过json.loads进行转换 2.json转str 3.通过eval 前言: str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号.如果不一致,推荐用正则进行拆分至和json格式一致 1. 通过json.loads进行转换 import json str = '{"name": "御姐", "age": 18}' j = json.loads(str) print(

  • Python3之字节串bytes与字节数组bytearray的使用详解

    字节串bytes 字节串也叫字节序列,是不可变的序列,存储以字节为单位的数据 字节串表示方法: b"ABCD" b"\x41\x42" ... 字节串的构造函数: bytes() 创建一个空的字节串 ,同b"" bytes(整数可迭代对象) 用可迭代对象创建一个字节串 bytes(整数n) 生成n个值为0的字节串 bytes(字符串,encoding='utf-8') 转码 字节串的运算:同其他序列的运算 +.+=.*.*= <.<=

  • 代码总结Python2 和 Python3 字符串的区别

    Python2 >>> >>> isinstance(b'abc', bytes) True >>> >>> isinstance(b'abc', str) True >>> >>> isinstance('abc', str) True >>> >>> isinstance('abc', bytes) True >>> >>>

  • python3 字符串知识点学习笔记

    python字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 = "jb51.net" 上面单引号'或双引号"都可以使用 Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用. Python 访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/

  • 解决python3 整数数组转bytes的效率问题

    昨天在做一道CTF题的时候碰到了一个图片异或的问题,操作大概如下: 将一个图片读入,然后每字节进行异或操作,核心代码可简化为以下: #coding:utf-8 ''' @DateTime: 2017-11-25 13:51:33 @Version: 1.0 @Author: Unname_Bao ''' import six key = b'\xdcd~\xb6^g\x11\xe1U7R\x18!+9d\xdcd~\xb6^g\x11\xe1U7R\x18!+9d' with open('fla

随机推荐