Python附加到.txt
嗨,我还在学习python,目前正在尝试将一些数据写入txt文件。我在添加超过1个人的详细信息时遇到问题。我可以添加第一个人的详细信息,并且效果很好,但是当我选择添加另一个人的详细信息集时,会出现以下错误Python附加到.txt,python,append,Python,Append,嗨,我还在学习python,目前正在尝试将一些数据写入txt文件。我在添加超过1个人的详细信息时遇到问题。我可以添加第一个人的详细信息,并且效果很好,但是当我选择添加另一个人的详细信息集时,会出现以下错误 line 58, in <module> datalist.append(first) AttributeError: 'map' object has no attribute 'append' 这里有一些问题 正如Patrick Haugh在上面指出的,map()返回
line 58, in <module>
datalist.append(first)
AttributeError: 'map' object has no attribute 'append'
这里有一些问题 正如Patrick Haugh在上面指出的,
map()
返回一个映射,而不是一个列表,因此没有.append()
方法。您可以通过转换他提到的列表中的map对象来解决这个问题:datalist=list(map(str,datalist))
还有一个事实是Python列表没有.count
属性。相反,您可能想知道列表的长度,因此只需执行打印(len(datalist))
最后,还有一个逻辑错误:您需要在外部while
循环的末尾为每个学生写一行,或者收集所有收集的学生并立即将其写出。前者要简单得多。只需将datalist
变量的清除移到循环内部的顶部,而不是之前。还请注意,由于您正在使用moredata=moredata.upper()
和循环的底部规范化大小写,因此不需要在顶部同时检查这两种情况
while (moredata=="Y"):
datalist=[]
...
在Python3中,map不返回列表,它返回一个
map
对象。执行datalist=list(map(str,datalist))
将数据放入列表。在将其内容写入数据文件后,是否仍要重置datalist
?谢谢。我想继续将每个人添加到一个不相关的新行:gender=input(“enter gender”).upper()
,group=min(int(input(“enter age”))-10,4)
(但要小心输入错误并检查[1,2,3,4]中的组)如果不重置数据列表
,则每一行将由它前面的每一行组成。datalist=[]
应该是行之后的第一行,而不是它前面的行。
while (moredata=="Y"):
datalist=[]
...