学习之路-->大小文件读取并分页展示

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])
上一篇:CodeForces Contest #1110: Global Round 1


下一篇:POJ 3683 Priest John's Busiest Day[2-SAT 构造解]