您的位置:首页 > 编程语言 > Python开发

StringIO — 像文件一样读写字符串

2017-04-13 23:34 316 查看
  该模块实现了一个类文件的 StringIO 类,用于读写字符串缓冲(也称为内存文件).参照文件对象的操作说明(文件对象部分).(字符串参照 strunicode).

class StringIO.StringIO([buffer])

  当创建一个 StringIO 对象时,可以传递一个字符串至构造函数来初始化.如果初始化时没有提供字符串,则创建一个空的 StringIO 对象.在这两种情况下,初始文件位置都是从 0 开始的.

  StringIO 对象可以接受 Unicode 或者 8-bit 字符串,但是混合使用的时候要注意了.如果两者混用的话,在调用 getvalue() 时不能转译成 7-bit ASCII的8-bit字符串会触发 UnicodeError

下面的一些 StringIO 对象的方法需要特别注意:

StringIO.getvalue()

  调用该方法可以在 StringIO 对象调用 close() 之前获”文件”(指缓冲字符串)的全部内容.参考上面提及的混用 Unicode和 8-bit字符串时的信息;这样的混用可能导致该方法抛出 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()


说明: 最近使用到StringIO模块时参考官方文档时顺便想到就译一下,如有纰漏和错误,恳请指正.免得小子误人误己.另外,该译文基于py2.x.

原文链接: https://docs.python.org/2/library/stringio.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息