Python待办列表Bug:新增待办无法换行,追加至同一行
问题分析与解决
你的待办项挤在同一行的核心原因是添加新待办时没有追加换行符:
- 用
readlines()读取文件时,每一行都会保留末尾的\n换行符 - 但你从用户输入提取的
todo没有添加\n,直接append到列表后,写入文件时就会和上一行内容连在一起
修复代码
只需修改add分支里的append语句,给新待办加上换行符:
if 'add' in user_action or 'new' in user_action or 'more' in user_action: todo = user_action[4:] with open('todos.txt', 'r') as file: todos = file.readlines() # 给新待办添加换行符,保证写入文件时单独占一行 todos.append(todo + '\n') with open('todos.txt', 'w') as file: file.writelines(todos)
额外优化(可选)
为避免用户输入前后的空格干扰,可在提取todo时加上strip():
todo = user_action[4:].strip()
这样无论用户输入add clean car还是add clean car,都能得到干净的待办内容,写入文件后每个待办项会单独占一行,控制台show时也会正确显示序号。
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

