大小文件读取并分页展示

发布时间:2019-05-29 21:26:02编辑:auto阅读(1978)

    1.读取小文件,并进行分页
      商品|价格
      飞机|1000
      大炮|2000
      迫击炮|1000
      手枪|123
      .....
    lis = []
    n = 10  #每页显示10条信息
    with open('小文件',mode='r',encoding='utf-8')as f:
        content = f.readlines()
        for line in content:
            line_str = " ".join(line.strip().split('|'))    #读取每一行,去换行符,转化成'飞机 1000'
            lis.append(line_str)    #将每条字符串添加至列表中
        first_line = lis.pop(0)     #删除列表中的第一个元素 ,即第一行内容,并赋给first_line
        page,end = divmod(len(lis),n)   #如果end!=0则最后一页有内容
        if end != 0:
            page+=1  #页码总数+1,为真正页码数
        num = int(input('请输入页码:'))
        each_page_content = lis[(num-1)*n:num*n]
        for i in range(len(each_page_content)):
            print(i+1,each_page_content[i])

    2.读取大文件

    读取大文件(100G),并进行分页
    商品|价格
    飞机|1000
    大炮|2000
    迫击炮|1000
    手枪|123
    .....
    while True:
        n = 10
        count = 0
        lis_page = []
        num = int(input('请输入页码:'))
        page_ends = num*n
        page_starts = (num-1)*n
        with open('大文件',mode='r',encoding='utf-8')as f:
            first_line = f.readline()   #读完第一行后,光标到了第一行结尾 ,继续读取文件从第二行开始
            print(first_line)   #让每次循环时都打印第一行
            for line in f:
                count += 1
                if page_ends < count :
                    break
                if page_starts < count:
                    lis_page.append(line)
        for i in range(len(lis_page)) :
            print(i+1,lis_page[i])

     

关键字