大小文件讀取並分頁展現

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.讀取大文件app

讀取大文件(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])
相關文章
相關標籤/搜索