练习:用户输入文件名和行号,显示指定行数的内容

要求:
用户输入文件名
用户输入要显示的行数。
例如,输入【10:20】,显示第10行到第20行。
【:20】 从第一行到第20行
【10:】第10行到结尾

 1 import os
 2 
 3 def file_view(fileName,lineNum):
 4     #判断文件是否存在
 5     if fileName.strip()=="":
 6         print("ERROR:请输入文件名")
 7         return
 8     if not os.path.exists(fileName):
 9         print("ERROR:你输入的文件【%s】不存在" % fileName)
10         return
11     #打开文件
12     f=open(fileName)
13     f_total_lines=len(f.readlines())
14 
15 
16     #判断输入的行数格式是否正确
17     if lineNum.count(":") !=1:
18         print('ERROR:行数的格式不正确,":"有且只能出现一次')
19         return
20 
21     #取得开始行和终了行
22     (startLine,endLine)=lineNum.split(":")
23     #“:”号前为空,从0第一行开始
24     if str(startLine.strip())=="":
25         startLine="1"
26 
27     if str(endLine.strip())=="":
28         endLine=str(f_total_lines)
29 
30     if (not startLine.isdigit()) or (not endLine.isdigit()):
31         print('ERROR:":"两侧必须是数字')
32         return
33     elif int(startLine)>int(endLine):
34         print('ERROR:起始行号>终止行号')
35         return
36         
37     if int(startLine)>f_total_lines:
38         print('ERROR:起始行号大于文件最大行号')
39         return
40         
41     #指针回到文件头部
42     f.seek(0,0)
43     index=0
44     for eachLine in f:
45         index+=1
46         if index >=int(startLine) and index<=int(endLine):
47             print(eachLine)
48     f.close()
49 
50     
51 fileName=input("请输入文件名(c:/test.txt):")    
52 lineNum=input("请输入行号(例:10:20):")    
53 file_view(fileName,lineNum)

 

转载于:https://www.cnblogs.com/marianyad/p/6601960.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值