大小文件读取并分页展示
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])