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

来源:互联网 发布:拍大师视频软件 编辑:程序博客网 时间:2024/06/05 13:51

  该模块实现了一个类文件的 StringIO 类,用于读写字符串缓冲(也称为内存文件).参照文件对象的操作说明(文件对象部分).(字符串参照 str 和 unicode).

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 StringIOoutput = 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

1 0
原创粉丝点击