如何用文本文件在Python创建列表?遇AttributeError问题求助
问题分析
你的代码里file.readline()只会读取文件的第一行文本,返回的是字符串类型,而字符串没有append()方法,所以调用todos.append(todo)会触发AttributeError。
解决方案
要把文件内容转换成列表,有几种可靠的方式:
方法1:使用readlines()读取所有行
readlines()会读取文件的所有行,返回包含每行内容的列表(注意每行末尾会带换行符\n,可以用strip()清理):
with open('todos.txt', 'r') as file: todos = [line.strip() for line in file.readlines()]
用with语句可自动关闭文件,避免手动关文件的疏漏。
方法2:读取全部内容后分割
如果文件里的todo按换行分隔,也可以读取整个文件内容,再按换行符分割成列表:
with open('todos.txt', 'r') as file: todos = file.read().splitlines()
splitlines()会自动处理不同系统的换行符(\n/\r\n),且不会保留换行符。
方法3:逐行读取构建列表
适合处理大文件,避免一次性加载全部内容到内存:
todos = [] with open('todos.txt', 'r') as file: for line in file: todos.append(line.strip())
后续使用
处理完成后todos就是标准列表类型,可正常调用append()、remove()等列表方法:
todo = input("Enter a todo :") todos.append(todo)
内容的提问来源于stack exchange,提问作者Aniket Bapat
相关产品推荐
相关产品推荐

