【Python初级】StringIO和BytesIO读写操作的小思考

简介: from io import StringIO;f = StringIO();f.write('Hello World');s = f.readline();print s;上面这种方法“无论如何”都读不出f的内容,使用readlines和循环也不行。
from io import StringIO;

f = StringIO();
f.write('Hello World');
s = f.readline();
print s;

上面这种方法“无论如何”都读不出f的内容,使用readlines和循环也不行。

但是,用以下的方法,却可以“正常读取”:

from io import StringIO;

f = StringIO('Hello World');
s = f.readline();
print s;

这是为什么呢?

这是因为the stream position的原因,当你用:

d = StringIO('Hello World')

其stream position为0(可以通过d.tell()获得),而后执行:

d.readline()

stream position移动到11.因此当我们再次执行d.readline()时,返回的是空字符串。演示见图:

类似的,使用:

f = StringIO()

stream position也为0,但执行了:

f.write('Hello World')

之后,stream position就移动到11了,因此此时你再执行readline时返回的依旧是空字符串。

当然咯,既然这个读取是和stream position的位置有关系,那么要能够在当前情况下还能读取'Hello World!',我们可以调整这个指针的位置,执行:

f.seek(0)

再进行读取操作,即可。

下面利用BytesIO进行演示,是一样的道理:

目录
相关文章
|
5天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
11 0
|
21天前
|
JSON 数据处理 数据格式
Python中的文件读写操作详解
【4月更文挑战第2天】在Python中,文件读写操作是数据处理和程序开发的重要部分。通过文件,我们可以将信息持久化地保存在磁盘上,并在需要时读取和使用这些数据。Python提供了丰富的内置函数和模块,使得文件读写变得简单而高效。本文将详细介绍Python中文件读写的基本操作和常用方法。
|
1月前
|
安全 Python
一篇文章搞懂Python的文件读写
一篇文章搞懂Python的文件读写
23 0
|
1月前
|
存储 数据处理 Python
Python中读写文本文件的技术实现
Python中读写文本文件的技术实现
23 0
Python中读写文本文件的技术实现
|
1月前
|
存储 数据处理 Python
Python中读写CSV文件的深入探讨
Python中读写CSV文件的深入探讨
18 0
|
1月前
|
存储 JSON JavaScript
Python中读写(解析)JSON文件的深入探究
Python中读写(解析)JSON文件的深入探究
31 0
|
1月前
|
XML 安全 API
Python读写XML文件:深入解析与技术实现
Python读写XML文件:深入解析与技术实现
47 0
|
1月前
|
存储 XML JSON
Python如何读写配置文件?
Python如何读写配置文件?
24 0
|
2月前
|
存储 数据挖掘 数据处理
Python与Excel的交互:读写Excel文件和处理数据
Python与Excel的交互:读写Excel文件和处理数据
|
2月前
|
存储 Python
【Python基础】- 文件的读写操作
【Python基础】- 文件的读写操作
26 0