zoukankan      html  css  js  c++  java
  • 68-取出文件的10行内容

    使用生成器取文本内容:

    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
    ', 'daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    ', 'bin:x:2:2:bin:/bin:/usr/sbin/nologin
    ', 'sys:x:3:3:sys:/dev:/usr/sbin/nologin
    ', 'root:x:0:0:root:/root:/bin/bash
    ', 'daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    ', 'bin:x:2:2:bin:/bin:/usr/sbin/nologin
    ', 'root:x:0:0:root:/root:/bin/bash
    ', 'daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    ', 'bin:x:2:2:bin:/bin:/usr/sbin/nologin
    ']
    
    ['root:x:0:0:root:/root:/bin/bash
    ', 'daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    ', 'bin:x:2:2:bin:/bin:/usr/sbin/nologin
    ', '
    ', '
    ', '
    ', '
    ', '
    ']

    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
  • 相关阅读:
    复杂JSON字符串转换为Java嵌套对象的方法
    好代码是如何炼成的
    让数据流转换代码更加健壮流畅:List的Stream包装
    由一个重构示例引发的对可扩展性的思考
    如何高效搜索信息
    个人安全防护简明指南
    YAML配置解析
    事件处理业务的简易组件编排框架
    lambda表达式滥用之殇:解耦三层嵌套lambda表达式
    碎碎念四六
  • 原文地址:https://www.cnblogs.com/hejianping/p/10965918.html
Copyright © 2011-2022 走看看