|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
不得不说我们的用户变得越来越刁钻了。要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)
代码清单:
01.def file_view(file_name, line_num):
02. if line_num.strip() == ':':
03. begin = '1'
04. end = '-1'
05.
06. (begin, end) = line_num.split(':')
07.
08. if begin == '':
09. begin = '1'
10. if end == '':
11. end = '-1'
12.
13. if begin == '1' and end == '-1':
14. prompt = '的全文'
15. elif begin == '1':
16. prompt = '从开始到%s' % end
17. elif end == '-1':
18. prompt = '从%s到结束' % begin
19. else:
20. prompt = '从第%s行到第%s行' % (begin, end)
21.
22. print('\n文件%s%s的内容如下:\n' % (file_name, prompt))
23.
24. begin = int(begin) - 1
25. end = int(end)
26. lines = end - begin
27.
28. f = open(file_name)
29.
30. for i in range(begin): # 用于消耗掉begin之前的内容
31. f.readline()
32.
33. if lines < 0:
34. print(f.read())
35. else:
36. for j in range(lines):
37. print(f.readline(), end='')
38.
39. f.close()
40.
41.file_name = input(r'请输入要打开的文件(C:\\test.txt):')
42.line_num = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')
43.file_view(file_name, line_num)
红色的看不懂,自己写也写到这里也写不下去了。求大神指点
不是有第几行到第几行的限制吗,把前面的东西读取完就是防止读取到多余的
用read就全部读取出来了,要用readline一行一行来
|
|