|
|
发表于 2019-8-22 17:45:44
|
显示全部楼层
本帖最后由 jackz007 于 2019-8-22 18:54 编辑
len(f.readlines()) 这条语句将导致文件指针到达文件尾部,再次读取文件的之前,必须用 f . seek(0 , 0) 语句把指针移动到文件开头。否则,什么文件内容都将读取不到。
楼主试试我写的版本
- def file_view(file_name , lines):
- begin , end = lines . split(':' , 1)
- begin = begin . strip()
- end = end . strip()
- if len(begin) == 0:
- begin = '1'
- if len(end) == 0:
- end = '-1'
- begin , end = eval(begin) , eval(end)
- if begin < 1:
- begin = 1
- if end < -1:
- end = -1
- if end >= begin or end == -1:
- s = '读取范围:从'
- if begin == 1:
- s += '文件开始'
- else:
- s += '第 %d 行' % begin
- s += '到'
- if end == -1:
- s += '文件结束'
- else:
- s += '第 %d 行' % end
- print()
- print(s)
- print()
- f = open(file_name , 'r')
- c , x = 0 , 0
- for line in f:
- line = line[: -1]
- x += 1
- if x >= begin and (x <= end or end == -1):
- print(line)
- c += 1
- else:
- if c > 0:
- break
- f . close()
- else:
- print('参数错误!')
-
- file_name = input('请输入要打开的文件:')
- lines = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21:】:')
- file_view(file_name , lines)
复制代码
|
|