美文网首页
Python3 - 字符串的I/O操作

Python3 - 字符串的I/O操作

作者: 惑也 | 来源:发表于2018-12-22 20:34 被阅读15次

问题

使用操作类文件对象的程序来操作文本或二进制字符串。

解决方案

使用 io.StringIO()io.BytesIO() 类来创建类文件对象操作字符串数据。比如:

import io

s = io.StringIO()
print(s)
<_io.StringIO object at 0x108b18dc8>

s.write('Hello World!\n')
print(s.getvalue())
Hello World!

print('This is a test.', file = s)
print(s.getvalue())
Hello World!
This is a test.

io.StringIO只能用于文本。如果要操作二进制数据,要使用 io.BytesIO类来代替。比如:

ss = io.BytesIO()
print(ss)
<_io.BytesIO object at 0x10d0a1b48>

ss.write(b'binary data')
print(ss.getvalue())
b'binary data'

讨论

当需要模拟一个普通文件时,StringIOBytesIO 类是很有用的。 比如,在单元测试中,可以使用 StringIO 来创建一个包含测试数据的类文件对象, 这个对象可以被传给某个参数为普通文件对象的函数。

需要注意的是,StringIOBytesIO 实例并没有正确的整数类型的文件描述符。 因此,它们不能在那些需要使用真实的系统级文件,如文件,管道或者是套接字的程序中使用。

相关文章

  • Python3 - 字符串的I/O操作

    问题 使用操作类文件对象的程序来操作文本或二进制字符串。 解决方案 使用 io.StringIO() 和 io.B...

  • Python3 文件 I/O 操作

    文件 I/O 操作 根据不同的操作系统正确对待文件内容 我们知道, Linux 系统下的回车符是 \n Windo...

  • 第4章: 容器与算法

    4.1 字符串 1 6大操作 4.2 I/O 流 1 << ("放到") 2 >> ("从...获取") 3 用户...

  • IO多路复用的作用

    1、阻塞 I/O 只能阻塞一个 I/O 操作,而 I/O 复用模型能够阻塞多个 I/O 操作,所以才叫做多路复用 ...

  • IO多路复用的作用,并发

    1、阻塞 I/O 只能阻塞一个 I/O 操作,而 I/O 复用模型能够阻塞多个 I/O 操作,所以才叫做多路复用 ...

  • Java I/O的工作机制

    基于字节的I/O操作接口 基于字符的I/O操作接口 字节和字符转换接口 磁盘I/O的工作机制 ...

  • 5. Buffer与性能。

    Buffer在文件I/O和网络I/O中运用广泛,尤其在网络传输中,它的性能举足轻重。在应用中经常会操作字符串,但一...

  • 协议栈学习笔记

    缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linu...

  • 第二章 深入分析Java I/O的工作机制

    Java I/O的基本架构 基于字节操作I/O,InputStream 和 OutputStream 基于字符操作...

  • python3基础01数值和字符串(一)

    本篇系统梳理python3数值类型,数值计算;字符串类型,字符串操作。 更好阅读体验请戳: python3基础01...

网友评论

      本文标题:Python3 - 字符串的I/O操作

      本文链接:https://www.haomeiwen.com/subject/rkdwkqtx.html