练习:读取文件内容根据页数输出内容

本文介绍了一种通过Python实现的文件内容分页显示方法,用户可以通过输入页码来查看文件中每页5行的内容。文章详细解释了如何读取文件、计算页数以及输出特定页面的行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 5.随意写一个20行以上的文件
# 运行程序,先将内容读到内存中,用列表存储。
# 接收用户输入页码,每页5条,仅输出当页的内容

with open('file1',encoding='utf-8') as f:
    l = f.readlines()
page_num = int(input('请输入页码 : '))
page,mod = divmod(len(l),5) #求有多少页,有没有剩余的行数
if mod:           # 如果有剩余的行数,那么页数加一
    pages=page+1    # 一共有多少页 当余数mod不为0时,总共的页数为page加上1页也就是pages
if page_num > pages or page_num <= 0:   #用户输入的页数大于总数或者小于等于0
    print('输入有误')
elif page_num == pages and mod !=0:    #如果用户输入的页码是最后一页,且之前有过剩余行数
    for i in range(mod):
        print(l[(page_num-1)*5 +i].strip())  #只输出这一页上剩余的行
else:
    for i in range(5):
#         print(l[(page_num-1)*5 +i].strip())  #输出5行



分析:

## 输入1 输出第1-5行        (1-1)*5=0    (1-1)*5+4=4
  #相当于输出列表的第0项至第四项:思考n怎么处理乘以5可以计算出来0和4
# 输入2 输出第6-10行       (2-1)*5+0=5    (2-1)*5+4=9
# 输入3 输出第11-15行      (3-1)*5+0=10   (3-1)*5+4=14
# 输入4 输出第16-20行      (4-1)*5+0=15   (4-1)*5+4=19

# 从上面可以看出每一个都是需要用页数减去1乘以5(是因为行数是连起来的所以需要乘以5)在加上一个变量i(
#     可以用range(5)获得,如果最后一页不是满页就需要把余数作为迭代range(mod)
# )



# 5.随意写一个20行以上的文件
# 运行程序,先将内容读到内存中,用列表存储。
# 接收用户输入页码,每页5条,仅输出当页的内容


f=open('file1',encoding='utf-8')
l=f.readlines()
page_num=int(input('请输入页码:\n'))
page,mod=divmod(len(l),5)#得出页码和剩余行数
if mod:
    pages=page+1#如果mod不是0说明页数还需要增加1才是正确的页数
if page_num>pages or page_num<=0:
    print('输入页码错误')
elif page_num==pages and mod!=0:#如果输入的页数和实际的页数一致并且余数不是0 那么就需要输出余数的行数,因为它是最后一页
    for i  in range(mod):
        print(l[(page_num-1)*5+i].strip())
else:
    for i in range(5):
        print(l[(page_num -1)*5+i].strip())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值