文章目录

  • 一.bytes
  • 二.str和bytes相互转换
  • 三.bytearray

一.bytes

bytes对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。

bytes是Python 3中特有的,Python 2 里不区分bytes和str。

Python2 中

>>> type(b'xxxxx')
<type 'str'>
>>> type('xxxxx')
<type 'str'>

Python3 中

>>> type(b'xxxxx')
<class 'bytes'>
>>> type('xxxxx')
<class 'str'>

二.str和bytes相互转换

python3中:
str 使用encode方法转化为 bytes
bytes通过decode转化为str

In [9]: str1='人生苦短,我用Python!'In [10]: type(str1)
Out[10]: strIn [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
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]: bytesIn [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!'

网络爬虫--3.str和bytes的区别相关推荐

  1. python3字符编码str_聊聊Python 3 的字符串:str 和 bytes 的区别

    Python2的字符串有两种:str 和 unicode,Python3的字符串也有两种:str 和 bytes.Python2 的 str 相当于 Python3 的bytes,而unicode相当 ...

  2. python里str什么意思_Python 3 字符串中的 STR 和 Bytes 究竟有什么区别?

    原标题:Python 3 字符串中的 STR 和 Bytes 究竟有什么区别? Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes.Python2 ...

  3. Python str / bytes / unicode 区别详解 - Python零基础入门教程

    目录 一.前言 二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别 2.Python3.x 版本中 s ...

  4. 调研目前主要的开源网络爬虫,并且说明各自的特点、局限性以及相互之间的区别

    PB10210016徐波-第一次作业 Chp.2 Web Crawling 调研目前主要的开源网络爬虫,并且说明各自的特点.局限性以及相互之间的区别.提交方式:word打印稿. 答:网络蜘蛛(Web  ...

  5. python学习笔记分享(四十)网络爬虫(7)反爬虫问题,解决中文乱码,登陆和验证码处理

    网络爬虫深度知识 一.反爬虫问题 (一)反爬虫原因 1.网络爬虫浪费了网站的流量 2.数据是私有资源 3.爬虫协议与原则 (二)反爬虫方式 (三)反反爬虫 1.原理 2.三种方法 二.解决中文乱码 ( ...

  6. 《python》002 网络爬虫 -0A 基础

    python3.6 安装 Scrapy ① 安装② Anaconda安装scraoy Request使用大全 简单了解 爬取网站 趣头条爬取 网络爬虫实例 小甲鱼零基础python 视频 小甲鱼视频 ...

  7. 北京理工大学·Python网络爬虫与信息提取·知识整理

    学习目标: python爬虫部分的学习 学习内容: mooc北京理工大学·Python网络爬虫与信息提取 对Scrapy内核依然一知半解,但mooc内容已经学完整理 后续将对Scrapy继续进行学习 ...

  8. 网络爬虫--requests、post、解密、Cookie、Session、IP代理

    网络爬虫的定义 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 根据使用场景,网络爬虫可分为通用爬虫和聚焦爬虫两种. 通用爬虫 通用网络爬虫 是捜索引擎抓取系统(Baidu.Goo ...

  9. 唤醒手腕Python全栈工程师学习笔记(网络爬虫篇)

    唤醒手腕Python爬虫学习笔记,喜欢的同学们可以收藏下,谢谢支持. 01.基础语法知识点 字符串的分割 webString = 'www.baidu.com' print(webString.spl ...

最新文章

  1. 彻底搞懂视觉-惯性SLAM:基于VINS-Fusion(正式开课)
  2. Twitter在超分辨率技术上取得新进展,能还原打码图片
  3. WCF后传系列(5):深入WCF寻址Part 5—逻辑地址和物理地址
  4. python 统计分析apache日志_python分析apache访问日志脚本分享
  5. 计算机原理与基础 —— (皇帝身边的小太监----寄存器)
  6. 震惊,用了这么多年的 CPU 利用率,其实是错的
  7. 用python爬取东方财富网网页信息_爬取东方财富网数据的网页分析
  8. 安装HDFS过程中Browse Directory报错
  9. 微信小程序登录后跳转tabbar页面
  10. averyboy的区间2
  11. CentOS安装虚拟打印机
  12. git log 查找某天之后的提交
  13. windows 环境 批量下载 小破站 视频 bat 脚本
  14. MATLAB Smoothing Spline 拟合
  15. 基于Matlab的IMM雷达多目标跟踪
  16. SpringBoot的优点
  17. socket编程(在线自动聊天工具) --Python3
  18. js清除浏览器缓存的几种方法(项目总结)
  19. android sdk如何瘦身,给Android应用开发者的十条瘦身建议
  20. 在idea中创建maven工程,搭建MVC框架,完成和servlet相似的操作

热门文章

  1. 中科大 计算机网络3 网络边缘Edge
  2. c++面向对象高级编程 学习四 静态、类模板、函数模板
  3. Android UI卡顿监控
  4. 方向盘的正确驾驭方法
  5. H.264码率控制机制
  6. 解决 : Shell 脚本 $‘\r‘: command not found 问题
  7. Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别、不可重复读与幻读的区别
  8. oracle赋予一个用户查询另一个用户中所有表
  9. HTTP 协议(详解)
  10. BZOJ 2243 染色(树链剖分好题)