千夜分离 发表于 2021-11-23 16:53:06

python文件系统问题

麻烦看看我这是怎么个情况。


file = open('tx.txt','r',encoding = 'UTF-8')
list(file)
['从明天起,做一个幸福的人\n', '喂马、劈柴,周游世界\n', '从明天起,关心粮食和蔬菜\n', '我有一所房子,面朝大海,春暖花开\n', '\n', '从明天起,和每一个亲人通信\n', '告诉他们我的幸福\n', '那幸福的闪电告诉我的\n', '我将告诉每一个人\n', '给每一条河每一座山取一个温暖的名字\n', '陌生人,我也为你祝福\n', '愿你有一个灿烂的前程\n', '愿你有情人终成眷属\n', '愿你在尘世获得幸福\n', '我只愿面朝大海,春暖花开']

list(file)
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
    list(file)
IndexError: list index out of range
list(file)
[]

然后我把文件关闭了重新开
file.close()
file = open('tx.txt','r',encoding = 'UTF-8')
list(file)
'从明天起,做一个幸福的人\n'

list(file)
[]

list(file)
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
    list(file)
IndexError: list index out of range


这是什么情况!!

jackz007 发表于 2021-11-23 17:12:04

本帖最后由 jackz007 于 2021-11-23 19:31 编辑

file = open('tx.txt','r',encoding = 'UTF-8')
list(file)                                     #这一句会从头到尾读取整个文件,文件指针会位于文件结尾
list(file)                                  #由于文件指针已经在文件结尾,因而无法读到任何内容,所以,list(file) = [],是个空列表,而 list(file) 自然就会下标超界了
      如果一定要这样操作,可以稍作修改
file = open('tx.txt','r',encoding = 'UTF-8')
list(file)
file . seek(0 , 0)                           # 添加此句
list(file)      

千夜分离 发表于 2021-11-24 08:49:11

jackz007 发表于 2021-11-23 17:12
如果一定要这样操作,可以稍作修改

soga,明白了明白了,谢谢!!!
页: [1]
查看完整版本: python文件系统问题