| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
用list(f)方法将文件转换为列表以后,请问为什么再f.read(f)会显示‘’空内容呢? 
- >>> f = open('F:/python学习/海子.txt')
 
 - >>> list(f)
 
 - ['从明天起,做一个幸福的人\n', '喂马、劈柴、周游世界\n', '从明天起,关心粮食和蔬菜\n', '我有一所房子,面朝大海,春暖花开\n', '你好']
 
 - >>> f.read()
 
 - ''
 
  复制代码 
 
 
 
 
p29的03题(输入行数如13:21,显示出内容的那个题)debug了将近一天,终于发现是这个的问题,   
- def view_pro(file_name, file_num):
 
 -     f = open(file_name)
 
 -     list1 = list(f)#此时会使f的指针指到末尾吗?
 
 -     lenth = len(list1)
 
 -     (start, end) = file_num.split(':')
 
 -     if start == '':
 
 -         first = 0
 
 -         last = int(end) - 1
 
 -         print('从开始到第%s行的内容如下:' % end)
 
 -     elif end == '':
 
 -         first = int(start) - 1
 
 -         last = lenth - 1
 
 -         print('从第%s行到末尾的内容如下:' % start)
 
 -     else:
 
 -         first = int(start) - 1
 
 -         last = int(end) - 1
 
 -         print('从第%s行到第%s行的内容如下:' % (start, end))
 
  
-     f.seek(0,0)#经过测试,需要这部操作使指针指到0,否则不行
 
 -     
 
 -     
 
 -     
 
 -     for i in range(lenth):
 
 -         line = f.readline()
 
 -         if first <= i <= last:
 
 -             print(line)
 
 -     
 
  
-     f.close()
 
  
- file_name = input('请输入要打开的文件:')
 
 - file_num = input('请输入要显示的行数【格式如3:4或:5或3:】:')
 
 - view_pro(file_name, file_num)
 
  复制代码 
对打开文件的任何读写,都会改变指针,list(f)之后,指针到了文件尾,你可以用f.tell()看到,f.read()自然没内容,你可以加一句f.seek(0)把指针复位,再f.read()就可以了。 
后面的代码,看样子你对文件指针有了了解,不过还有点bug:输入一个冒号的时候输出全文没做到。 
 
 
 |   
 
 
 
 |