Python读取txt文件调用readlines()赋值变量触发IndexError如何解决
报错原因
文件读取操作存在文件指针机制:第一次执行txt.readlines(0)[0]时,文件指针已经移动到文件内容末尾,第二次调用readlines()方法时,没有剩余内容可以读取,会返回空列表,此时访问[0]下标就会触发IndexError: list index out of range异常。
解决方案
方案1:单次读取复用内容(推荐)
只读取一次文件所有行,将结果存储在变量中复用,避免重复IO操作,同时推荐使用with语法自动管理文件句柄,无需手动关闭文件:
with open('C:/Users/z/OneDrive/Desktop/New_Text_Doc.txt', 'r', encoding='utf-8') as f: all_lines = f.readlines() print(all_lines[0]) x = all_lines[0]
方案2:重置文件指针后二次读取
如果确实需要多次调用读取方法,可以在两次读取之间调用seek(0)方法,将文件指针重置到文件起始位置:
txt = open('C:/Users/z/OneDrive/Desktop/New_Text_Doc.txt', 'r', encoding='utf-8') print(txt.readlines(0)[0]) # 重置指针到文件开头 txt.seek(0) x = txt.readlines(0)[0] txt.close()
内容的提问来源于stack exchange,提问作者Binx
相关产品推荐
相关产品推荐

