支持在文件对象行上执行列表操作
项目描述
支持在文件对象行上执行列表操作。
所有操作都避免迭代,除非必要。包括len()和负索引在内的操作会强制整个文件迭代。为了避免过多的查找,所有列表操作都可能改变底层文件对象的位
从一个文件对象开始。
>>> import cStringIO >>> file_ = cStringIO.StringIO("""\ ... foo ... bar ... baz ... qux ... """)
将文件对象包装在listfile实例中。
>>> from rpatterson import listfile >>> wrapped = listfile.ListFile(file_)
可以通过索引访问行。
>>> wrapped[0] 'foo\n' >>> wrapped[2] 'baz\n'
支持负索引。
>>> wrapped[-1] 'qux\n' >>> wrapped[-3] 'bar\n'
长度返回行数。
>>> len(wrapped) 4
超出文件末尾的索引将引发IndexError。
>>> wrapped[4] Traceback (most recent call last): IndexError: list index out of range
检索切片返回一个新的同一文件对象的包装器。
>>> slice_ = wrapped[1:3] >>> len(slice_) 2 >>> slice_[0] 'bar\n' >>> slice_[1] 'baz\n'>>> slice_ = wrapped[1:][0:2] >>> len(slice_) 2 >>> slice_[0] 'bar\n' >>> slice_[1] 'baz\n'
支持切片步进。
>>> slice_ = wrapped[1::2] >>> len(slice_) 2 >>> slice_[0] 'bar\n' >>> slice_[1] 'qux\n'
包装器也是适合writelines()的迭代器。
>>> list(slice_) ['bar\n', 'qux\n'] >>> out = cStringIO.StringIO() >>> out.writelines(slice_) >>> out.getvalue() 'bar\nqux\n'
变更日志
0.1 - 2009-05-27
首次发布
项目详情
关闭
rpatterson.listfile-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5046b89f9a73c080289696a0f2dcf31897ce10f2cbe0a867f4f38a84e24cf1bb |
|
MD5 | 9e97ce01fb72c8a65d497fb233a9ccaa |
|
BLAKE2b-256 | 7eb33b3c0e28c024a1f4379205bf81aa433c2a4f41d943a50f866da5960b8b32 |