python import io_Python——python3的io读写

前言:

python2中的StringIO经常被用来作字符串的缓存,尤其是处理图片验证码的处理,近期牵扯tornado项目升级python3,简单学习了下python3中的io操作;因为StringIO的一些接口和文件操作是一致的,也就是说同样的代码,可以同时当成文件操作或者StringIO操作。StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的“文件”,我们可以将操作磁盘文件那样来操作StringIO。python2中是叫cStringIO,python3是归到IO中了:

本文只简单介绍python3下io中的StringIO和BytesIO()的操作:

StringIO

import io

#1、生成一个StringIO对象:

s = io.StringIO()

#2、write()从读写位置将参数s写入到对象s,参数为str或unicode类型,读写位置被移动

s.write('Hello World\n')

#3、getvalue()用法:返回对象s中的所有数据

print(s.getvalue())

#4、read(n)用法:参数n用于限定读取的长度,类型为int,默认为从当前位置读取对象s中所有的数据。读取结束后,位置被移动。

s = io.StringIO('Hello World\n')

print(s.read(2))

#结果 He

print(s.read())

#结果 llo world\n

s = io.StringIO('Hello World\n')

#5、readline(length)用法:length用于限定读取的结束位置,类型为int,缺省为None,即从当前位置读取至下一个以'\n'为结束符的当前行。读位置被移动。

print(s.readline(7))

#结果 Hello W

BytesIO

import io

#一样的使用方法:先实例化一个对象

s = io.BytesIO()

#可以把相关数据转换成bytes类型

s.write(b"hello world") #同一个对象使用write可以追加写

#getvalue获取写入的二进制数据

s.getvalue()

#输出:b'hello world'

#read方法同样适用:

s.read()可以读取全部内容,传递数字参数好像没什么用;

然后可以用作图片的处理:

from PIL import Image

import requests

res = requests.get('https://cn.bing.com/th?id=OHR.CorkTrees_ZH-CN1253123792_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp', stream=True)

# 初始化BytesIO对象并且写入数据

s = io.BytesIO(res.content)

r = Image.open(s) # Image打开Byte字节流数据

print(s.format) # 获取图片的格式

print(s.size) #获取图片的大小

r2 = io.BytesIO() # 创建一个空的Bytes对象

r2 = s.getvalue() # 这个就是保存的图片字节流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 编辑距离_最小编辑距离python

1 什么是编辑距离 在计算文本的相似性时,经常会用到编辑距离(Levenshtein距离),其指两个字符串之间,由一个字符串转成另一个所需的最少编辑操作次数。在字符串形式上来说,编辑距离越小,那么两个…

php 清空一个数组_php如何删除一个数组

php如何删除一个数组2020-07-10 01:16:35php删除一个数组的方法:1、使用unset函数删除一个数组元素,且保持原有索引不变;2、使用“array_splice”函数删除一个数组元素,不保持索引;3、使用“array_diff”函数&#xff…

asp多表查询并显示_MySQL多表查询与事务

回顾1. DQL单表高级查询条件 where比较运算逻辑运算符in关键字between关键字if null关键字like关键字% 多个任意字符_ 单个任意字符排序 order byascdesc聚合函数count(*) 统计行,包括null值maxminavgsum分组 group by 分组字段 having 分组后条件过滤分页 limit 开…

pyqt按钮关闭窗口_PyQt5按钮单击事件,退出程序

1.注意项:当使用QPushButton.clicked.connect(lambda:self.信号槽方法)。connect方法传参数时,需要加上“lambda:”2.步骤:添加一个按钮 self.button1 QPushButton(按钮上的文本)。创建水平布局对象QHBoxLayout,并使用setWidget方…

Bias and Debias in Recommender System: A Survey and Future Directions学习笔记

1 引言 2006-2020发表的有关推荐系统去偏的论文统计: 2 推荐系统的偏差 偏差发生在推荐系统的不同阶段: 用户交互到生成数据的阶段: – 选择偏差: – 一致性偏差(从众偏差): – 曝光偏差&a…

卡扇区数据教程_分享一款硬盘分区和数据恢复软件

最近有朋友留言,自己的硬盘被格式化了,没法恢复。今天给大家介绍一款解决硬盘恢复软件--DiskGenius,文末附下载地址,觉得有用点个在看吧。DiskGenius是一款功能非常强大的硬盘分区及数据恢复软件,算法精湛、功能强大&a…

名图1.8智能隐藏功能_7年后再度回归 全新一代名图“大”不同_搜狐汽车

本文车型速览除了文章作者的主观观点外,我们正尝试基于全网可查的客观数据,为您提供中立、客观的参考依据:本文部分车型速览:畅销车型质量排行top10展开微信扫码,直接一次看完附近所有城市低价(附近城市均有经销商可售…

文本图像增强及opencv应用实例

1 文本图像增强简介 文本图像增强应用场景:扫描电子图像、图像去背景、去噪点、文字增强等;传统图像处理的方法:滤波锐化、形态学处理等,利用opencv就可以操作;基于深度学习的方法:风格迁移、超分重构等。2 基于opencv的文本图像增强算法之一 利用传统图像处理方式对文本…

3 vue 线条箭头_线条眉要如何处理才能更自然?

更多纹绣内容关注公众号:法米索半永久学堂。眉头的操作确实不是一件容易的事,都说万事开头难,很多纹绣师把握不好眉头的操作技巧,一不小心就会把眉头做的方了、圆了,总之就是非常不自然。但只要我们把眉头做好了&#…

文本图像增强文献调研

1 角度矫正 https://blog.csdn.net/weixin_39133209/article/details/127754001 https://zhuanlan.zhihu.com/p/370145715 https://blog.csdn.net/m_buddy/article/details/81463234 https://blog.csdn.net/weixin_42869334/article/details/123348328 https://www.codenong.c…

Jenkins Job 迁移小妙招【jenkins-cli】

文章目录 jenkins-cli 入门jenkins-cli 使用方法 1:使用 ssh 访问 jenkins第 1 步:认证第 2 步:查看支持的命令第 3 步:构建 job 案例方法 2:使用 cli 客户端 访问 jenkins第 1 步:下载 jar第 2 步:使用 cli 客户端查看所有选项客户端连接模式两种方式的对比迁移案例【基…

git rebase用法_Git:Clone别人的代码之后push到自己码云上失败的解决办法

最近也是刚开始使用gitee,比较生疏。场景是这样的:clone了朋友的一份代码到自己的本地,然后自己想把它保存到自己的gitee 私有仓库上,就在gitee上面创建了一个私有的仓库,然后多次push都失败了,实践了网上提…

fpga板子怎么和电脑连_windows7台式电脑怎么连接路由器?台式win7电脑连路由器步骤...

相信还有许多在使用windows7系统,尽管使用很长一段时间了,不过对win7系统的一些功能还是不太了解。大家家里应该都有路由器,那么windows7台式电脑怎么连接路由器,下面我们就一起来看看台式win7电脑连接路由器步骤。win7台式电脑连…

文本检测及识别小组周报

1 Huang L的工作 https://blog.csdn.net/qq_44950283/article/details/127739829 OCR小组会议纪要 2022/11/12 任意形状文本检测 1、特征提取:输入图片通过共享卷积得到共享特征Fs 2、边界建议模型使用Fs,得到先验特征Fp(包括分类图、距离场图、方向场…

python回车换行怎么不行_使用Python编写换行符时避免写入回车'\r'

如果考虑到carriage return \r和line feed \nPython 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>…

英特尔核显自定义分辨率_让免费的核显更好用!英特尔酷睿集成的GPU如何优化?...

点击上方电脑爱好者关注我们在笔记本领域,无论是英特尔酷睿还是AMD锐龙,都采取了“买一赠一”的策略,即都在处理器内集成了性能还不赖的核显,虽然它们无法驾驭3A游戏大作,但应对《英雄联盟》级别的游戏还是不成问题的。…

TextBPN:Adaptive Boundary Proposal Network for Arbitrary Shape Text Detection学习笔记

1 动机 领域:任意形状的文本检测目的:不需要后处理,直接学习到任意形状文本的边界。 2 相关工作 3 算法分析 算法分为两个部分: 边界建议模型(a boundary proposal model):我的理解是这个部分先给出一个大致的边界…

python脚本式编程_Python编程入门(一)

Python编程入门(一)概述:编程语言 1.脚本编程语言★脚本编程语言如php,perl,python,java等为脚本编程语言,通常需要通过解释器解释运行。 ★python(java)程序的执行过程s…

for循环里面有异步操作_JS 线程与异步的那些事

已知,JavaScript 是单线程的,天生异步,适合 IO 密集型,不适合 CPU 密集型,但是,为什么是异步的喃,异步由何而来的喃,我们将在这里逐渐讨论实现。一、进程与线程1. 浏览器是多进程的它…

FDRNet: Fourier Document Restoration for Robust Document Dewarping and Recognition学习笔记

1 广告 这篇工作由字节跳动商业化技术团队与新加坡南洋理工大学合作完成。 话不都说,先看效果: FDRNet的效果看上去有点好,可惜没有源代码提供。 2 相关工作 2.1 几何形变恢复方法Geometric Document Restoration 由相机传感器捕获的文档…