首页 > 其他 > 详细

68-取出文件的10行内容

时间:2019-06-03 10:02:29      阅读:80      评论:0      收藏:0      [点我收藏+]

使用生成器取文本内容:

def blocks(fobj):
    block = []
    counter = 0
    for line in fobj:
        block.append(line)
        counter += 1
        if counter == 10:
            yield block  # 返回中间结果,下次取值,从这里继续向下执行
            block = []
            counter = 0
    if block:  # 文件最后不够10行的部分
        yield block

if __name__ == __main__:
    fobj = open(./tmp/shop.data)  
    for lines in blocks(fobj):
        print(lines)
        print()
    fobj.close()

结果输出:

[root:x:0:0:root:/root:/bin/bash\n, daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\n, bin:x:2:2:bin:/bin:/usr/sbin/nologin\n, sys:x:3:3:sys:/dev:/usr/sbin/nologin\n, root:x:0:0:root:/root:/bin/bash\n, daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\n, bin:x:2:2:bin:/bin:/usr/sbin/nologin\n, root:x:0:0:root:/root:/bin/bash\n, daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\n, bin:x:2:2:bin:/bin:/usr/sbin/nologin\n]

[root:x:0:0:root:/root:/bin/bash\n, daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\n, bin:x:2:2:bin:/bin:/usr/sbin/nologin\n, \n, \n, \n, \n, \n]

shop.data文本的内容,一共有13行:

 1 root:x:0:0:root:/root:/bin/bash
 2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
 3 bin:x:2:2:bin:/bin:/usr/sbin/nologin
 4 sys:x:3:3:sys:/dev:/usr/sbin/nologin
 5 root:x:0:0:root:/root:/bin/bash
 6 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
 7 bin:x:2:2:bin:/bin:/usr/sbin/nologin
 8 root:x:0:0:root:/root:/bin/bash
 9 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
10 bin:x:2:2:bin:/bin:/usr/sbin/nologin
11 root:x:0:0:root:/root:/bin/bash
12 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
13 bin:x:2:2:bin:/bin:/usr/sbin/nologin

 

68-取出文件的10行内容

原文:https://www.cnblogs.com/hejianping/p/10965918.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!