当我创建todo-item时,我想在我的文件中添加输入内容。为什么我在file.writeline()
中添加字符串时不能达到预期的效果?
我想使用file.writeline()
将用户输入的内容写入文件。
while True:
user_action = input('Type add, show, edit, complete or exit: ')
user_action = user_action.strip()
match user_action:
case 'add':
todo = input("Enter a todo: ") + "\n"
todos.append((todo))
file = open("todos.txt", "w")
file.writelines(todo)
2条答案
按热度按时间mec1mxoz1#
writelines
接受一个列表,而不是一个字符串。对于你正在尝试做的事情,我推荐write
,它确实接受一个字符串。如果你这样做,你还需要在append模式下打开文件,这意味着你传递"a"
而不是"w"
。整个代码看起来像这样:olqngx592#
**问题:**您在
'w'(write)
模式下打开文件,因此,每次尝试写入文件时,以前的内容都会被覆盖。**解决方案:**使用
'a'(append)
模式打开文件**改进:**不要在循环中打开文件(这会导致不必要的处理),最好在收集所有todos后打开它(仅一次)。
**假设:**我希望你在match语句的末尾使用“default case”(例如:
case _
)下面是最终代码: