Python如何将生成的人员记录逐行写入本地文本文件?
代码修改方案
你只需替换原有代码中save_data()函数的实现即可,核心逻辑是遍历数据库列表逐行格式化写入,而非直接将整个列表转为字符串写入。
最优效果(无括号版本)修改代码
def save_data(): name_file = input('请输入文本文件名称 [示例:name.txt]: ') # 修正原代码编码参数笔误,utf-8的横杠是减号不是等号 with open(name_file, 'w', encoding='utf-8') as data: # 遍历记录,序号从1开始计数 for idx, (name, sname, city) in enumerate(database, start=1): # 按要求格式化每行内容,末尾加换行符实现单独占行 line = f"{idx}. {name}, {sname}, {city}\n" data.write(line) print(f'记录已成功生成到文件:{name_file}')
效果1(带方括号版本)修改代码
如果需要带方括号的输出,仅需修改上述代码中line变量的赋值逻辑即可:
line = f"{idx}. [{name}, {sname}, {city}],\n"
修改说明
- 使用
with上下文管理器操作文件,无需手动调用close()方法,代码更简洁安全,避免异常场景下文件未正常关闭的问题 - 用
enumerate方法直接获取序号和对应记录,无需额外定义计数变量 - 逐行格式化拼接字符串,每条记录末尾添加换行符
\n实现单独占行 - 修正了原代码中编码参数的笔误:将
encoding='utf=8'调整为encoding='utf-8',避免编码异常
内容的提问来源于stack exchange,提问作者vendor5gm
相关产品推荐
相关产品推荐

