python stringio_StringIO (String) – Python 中文开发手册 - Break易站

Python 中文开发手册

StringIO (String) - Python 中文开发手册

这个模块实现了一个文件类,StringIO它读取和写入字符串缓冲区(也称为内存文件)。请参阅文件对象的操作说明(文件对象部分)。(对于标准字符串,请参阅str和unicode。)

class StringIO.StringIO([buffer])

当StringIO对象被创建时,可通过该字符串传递给构造被初始化到一个现有的字符串。如果没有给出字符串,StringIO则将开始为空。在这两种情况下,初始文件位置都从零开始。

StringIO对象可以接受Unicode或8位字符串,但混合这两者可能需要小心。 如果同时使用这两个字符串,那么不能解释为7位ASCII(使用第8位)的8位字符串将在调用getvalue()时引发UnicodeError。

StringIO对象的以下方法需要特别提及:

StringIO.getvalue()

在调用StringIO对象的close()方法之前,随时检索“文件”的全部内容。 有关混合Unicode和8位字符串的信息,请参阅上面的注释; 这种混合可能会导致此方法引发UnicodeError。

StringIO.close()

释放内存缓冲区。 试图用一个封闭的StringIO对象进行进一步的操作会引发一个ValueError。

用法示例:

import StringIO

output = StringIO.StringIO()

output.write('First line.\n')

print >>output, 'Second line.'

# Retrieve file contents -- this will be

# 'First line.\nSecond line.\n'

contents = output.getvalue()

# Close object and discard memory buffer --

# .getvalue() will now raise an exception.

output.close()

模块cStringIO提供了一个类似于StringIO模块的接口。 通过使用来自该模块的函数StringIO(),可以使StringIO.StringIO对象的大量使用变得更高效。

cStringIO.StringIO([s])

返回一个类似StringIO的流以供读取或写入。

由于这是一个返回内置类型对象的工厂函数,因此无法使用子类构建自己的版本。 无法在其上设置属性。 在这些情况下使用原始的StringIO模块。

与StringIO模块不同,此模块无法接受无法编码为纯ASCII字符串的Unicode字符串。

与StringIO模块的另一个区别是,使用字符串参数调用StringIO()会创建一个只读对象。 与没有字符串参数创建的对象不同,它没有写入方法。 这些对象通常不可见。 它们以追溯方式出现为StringI和StringO。

还提供了以下数据对象:

cStringIO.InputType

通过使用字符串参数调用StringIO()创建的对象的类型对象。

cStringIO.OutputType

通过调用StringIO()而不带参数返回的对象的类型对象。

这个模块还有一个C API。请参阅模块来源获取更多信息。

用法示例:

import cStringIO

output = cStringIO.StringIO()

output.write('First line.\n')

print >>output, 'Second line.'

# Retrieve file contents -- this will be

# 'First line.\nSecond line.\n'

contents = output.getvalue()

# Close object and discard memory buffer --

# .getvalue() will now raise an exception.

output.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值