通过重复用户输入向现有TXT文件追加内容 实现电话号码列表录入求助
问题根源
- 逻辑顺序错误:你当前是先把用户输入写入文件,再判断输入是否为空,这就会导致最后用户按回车终止时,空输入也被写入文件,多出不必要的空行。
- 手动调用
close()关闭文件的方式存在风险,如果程序在写入过程中异常退出,文件可能无法正常关闭,导致写入内容丢失。
修复后的代码
# with语句会自动处理文件关闭,无需手动调用close() with open('telephone.txt', 'a') as nums: print('请输入姓名和号码,直接按下回车键结束输入:') while True: new = input('姓名和号码:') # 先校验输入是否为空,加strip()兼容用户不小心输入空格的情况 if new.strip() == '': break nums.write(f'\n{new}') # 读取文件验证写入结果 with open('telephone.txt', 'r') as nums: print(nums.read())
可选优化点
- 如果要避免多次写入后文件开头出现空行,可以在写入前先判断文件是否为空,仅当文件已有内容时才在新条目前加换行符。
- 可以增加简单的格式校验,过滤不符合「姓名+号码」规则的无效输入。
内容的提问来源于stack exchange,提问作者Throatwobbler
相关产品推荐
相关产品推荐

