python 输入应该是list,但它采用str输入并产生错误

z0qdvdin  于 2023-05-16  发布在  Python
关注(0)|答案(2)|浏览(165)

我正在创建一个类似于todo列表的程序,但append方法似乎与数据类型不匹配

match user_action:
       case "add":
           todo = input("Enter a todo: ") + "\n"

           file = open('todos.txt', 'r')
           todos = file.readline()
           file.close() 
           todos.append(todo)

           file = open('todos.txt', 'w')
           file.writelines(todos)
           file.close()

期望将用户输入附加到待办事项列表中

bq3bfh9z

bq3bfh9z1#

要解决输入应该是一个列表但它接受一个字符串输入并产生错误的问题,需要将todos变量初始化为一个列表而不是字符串。下面是更新后的代码:

match user_action:
case "add":
    todo = input("Enter a todo: ") + "\n"
    file = open('todos.txt', 'r')
    todos = file.readlines()
    file.close()
    todos.append(todo)
    file = open('todos.txt', 'w')
    file.writelines(todos)
    file.close()

说明:

  • readlines()方法用于从文件中读取所有行,并将它们作为列表存储在todos变量中。
  • 然后使用append()方法将新的todo项添加到todos列表中。
  • 最后,使用writelines()方法将更新后的todos列表写回文件。

请记住,在运行此代码之前,导入必要的模块并确保文件todos.txt存在。

jhiyze9q

jhiyze9q2#

直接追加文件是否更好?

with open('todos.txt', 'a') as file:
    file.write(todo)

相关问题