Python - AttributeError:'_ io.TextIOWrapper'对象没有属性'append'

时间:2015-06-02 10:50:43

标签: python attributeerror

我收到错误

ClassFile.append(filelines) AttributeError: '_io.TextIOWrapper' object has no attribute 'append'

尝试写文件时

。它是关于写一个关于学生的分数,他们的名字,姓氏,班级名称(只需输入班级Class 1)的文件,分数是多少分数和他们的分数。只有最后3个分数才会保留在文件中。我不明白这意味着什么。

这是代码

score=3
counter=0

name=input('Name:')
surname=input('Last Name:')
Class=input('Class Name:')

filelines=[]

Class=open(Class+'.txt','r')
line=Class.readline()
while line!='':
    Class.append(filelines)
    Class.close()

linecount=len(filelines)
for i in range(0,linecount):
    data=filelines[i].split(',')

2 个答案:

答案 0 :(得分:3)

你的追加代码全部混淆了; append()方法位于filelines对象上:

ClassFile=open(CN+'.txt','r')
line=ClassFile.readline()
while line!='':
    filelines.append(line)
ClassFile.close()

请注意,我还移动了循环的close()来电

您不需要在那里使用while循环;如果你想要一个包含所有行的列表,你可以简单地做:

ClassFile=open(CN+'.txt','r')
filelines = list(ClassFile)
ClassFile.close()

要处理文件关闭,请将文件对象用作上下文管理器:

with open(CN + '.txt', 'r') as openfile:
    filelines = list(openfile)

答案 1 :(得分:2)

ClassFile_io.TextIOWrapper类型的对象,它没有任何属性append。你错误地认为它是List类型的对象。似乎代替了类filelines.append(line)之类的ClassFile.append(filelines)。 如果要在文件中写入内容,请在写入或附加模式下打开它(根据需要)并将其写入所需的字符串。