| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
问题一: 
 
- # -*- coding: utf-8 -*-
 
 - """
 
 - Spyder Editor
 
  
- This is a temporary script file.
 
 - """
 
  
 
- f = open('C://Users//11811//Desktop//test.txt',encoding='utf-8')
 
 - for each_line in f:
 
 -         print(each_line)
 
  
- f.tell()
 
  复制代码 
 
 
上面是我的代码,但是为甚么没有返回指针的位置呢? 
显示的是这样的: 
runfile('C:/Users/11811/.spyder-py3/temp.py', wdir='C:/Users/11811/.spyder-py3') 
你是谁 
 
我不知道呀 
 
你怎么不知道你是谁 
 
我就是不知道我是谁 
 
好吧再见 
 
再见 
 
问题二: 
 
代码如下: 
- f = open('C://Users//11811//Desktop//test.txt',encoding='utf-8')
 
 - for each_line in f:
 
 -         print(each_line)
 
  
- list(f)
 
  复制代码 
 
运行结果如下: 
 
f = open('C://Users//11811//Desktop//test.txt',encoding='utf-8') 
for each_line in f: 
        print(each_line) 
 
 
list(f) 
你是谁 
 
我不知道呀 
 
你怎么不知道你是谁 
 
我就是不知道我是谁 
 
好吧再见 
 
再见 
 
Out[10]: [] 
 
为什么集合是空的呢? 
 
 
文件里面是这样的: 
 
 
你是谁 
我不知道呀 
你怎么不知道你是谁 
我就是不知道我是谁 
好吧再见 
再见 
 本帖最后由 Twilight6 于 2020-7-10 13:13 编辑 
 
 
 
第一个问题: 
上面是我的代码,但是为甚么没有返回指针的位置呢?  
 
因为你没有打印,print(f.tell()) 
 
在IDLE 或者其他编辑器控制台直接调用时,它们会自动帮你打印返回值的 
 
 
 
首先这个不叫集合,叫列表 
 
f = open('C://Users//11811//Desktop//test.txt',encoding='utf-8') 
for each_line in f: 
        print(each_line) 
 
list(f)  
 
你这里的 for 循环都把文件对象的文件指针移动到了文件末尾,所以你此时再次 list 将文件转化,肯定返回的是一个空列表 
 
你在 for 循环前 list ,但是 for 循环就会为空了,或者通过 seek(0,0) 移动文件指针到文件开头就可以 list 出文件的内容了 
- f = open('C://Users//11811//Desktop//test.txt',encoding='utf-8')
 
 - for each_line in f:
 
 -         print(each_line)
 
 - f.seek(0,0)
 
 - list(f)
 
  复制代码 
 
 
 
 
 
 
 
 |   
 
 
 
 |