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)

相关推荐

  • 简单了解Python3 bytes和str类型的区别和联系

    这篇文章主要介绍了简单了解Python3 bytes和str类型的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)

  • Python3中的bytes和str类型详解

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 下面让我们深入分析一下二者的区别和联系. 编码发展的历史 在谈bytes和str之前,需要先说说关于编码是如何发展的.. 在计算机历史的早期,美国为代表的英语系国家主导了整

  • 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中bytes和HexStr之间的转换详解

    在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F' list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况. 需要用到的核心的方法如下: list() 将对象转换为lis

  • Python3中bytes类型转换为str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 问题背景 基于URL解析报文的时候,URL链接出现str类型+bytes类型是报错TypeError,如何解决这个问题呢? 解决方案 方法一:利用str函数 方法二:利用b

  • python3中bytes和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&qu

  • 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 字符串/列表/元组(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

随机推荐