文件保存中的疑问
源码:import osos.chdir(r'c:\小甲鱼\第八章 文件保存')
f=open(r'record2.txt')
print(list(f))
length=len(list(f))
print(list(f))
print(length)
疑问:为什么程序执行后列表长度为0,第二次打印列表为空列表,大神解答。(txt文件内容随便是什么都这样) f.readlines() import os
os.chdir(r'c:\小甲鱼\第八章 文件保存')
f=open(r'record2.txt')
print(list(f)) #第1次list(f),以行为单位生成列表打印,打印完后文件指针到了行尾;
length=len(list(f))#此时到了文件尾,list(f)获得空列表,所以length为0;
print(list(f)) #同上,空列表
print(length)
不清楚你的代码的目的,如果只是要print两次获得同样的结果并且获得正确行数,用seek()来复位指针:
import os
os.chdir(r'c:\小甲鱼\第八章 文件保存')
f=open(r'record2.txt')
print(list(f))
f.seek(0) #文件指针复位到开始
length=len(list(f))
f.seek(0) #再次复位
print(list(f))
print(length) 补充一下,只有list而没有赋值给变量,是做了一次性的迭代,数据不会保存下来,所以要操作列表,一定要赋值,还有忘了说,打开文件记得关上import os
os.chdir(r'c:\小甲鱼\第八章 文件保存')
f=open(r'record2.txt')
a=list(f)
f.close() #后面只对列表a进行操作,无需操作文件了,当然写在最后一行也行。
print(a)
length=len(a)
print(a)
print(length)
:
页:
[1]