栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从python中的文件中读取由自定义分隔符终止的记录?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从python中的文件中读取由自定义分隔符终止的记录?

Python 2.x

file
对象或Python 3.3
io
类中没有任何内容可让您为指定自定义分隔符
readline
。(
for line infile
最终使用与相同的代码
readline
。)

但是,自己构建它很容易。例如:

def delimited(file, delimiter='n', bufsize=4096):    buf = ''    while True:        newbuf = file.read(bufsize)        if not newbuf: yield buf return        buf += newbuf        lines = buf.split(delimiter)        for line in lines[:-1]: yield line        buf = lines[-1]

这是一个愚蠢的例子:

>>> s = io.StringIO('abcZZZdefZZZghiZZZjklZZZmnoZZZpqr')>>> d = delimited(s, 'ZZZ', bufsize=2)>>> list(d)['abc', 'def', 'ghi', 'jkl', 'mno', 'pqr']

如果您想同时使用二进制文件和文本文件,尤其是在3.x中,则比较麻烦。但是,如果只需要为一种或另一种(以及一种或另一种语言)工作,则可以忽略它。

同样,如果您使用的是Python 3.x(或

io
Python
2.x中的对象),并且想要利用已经维护在其中的缓冲区,
BufferedIObase
而不是仅仅将缓冲区放在缓冲区之上,那棘手的。这些
io
文档的确说明了如何做所有事情……但是我不知道任何简单的示例,因此您实际上必须至少阅读该页面的一半,然后略过其余部分。(当然,您可以直接使用原始文件…,但是如果您要查找unipre分隔符,则不能使用…)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号