You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取txt排序后输出到控制台,如何将结果写入CSV指定列?

Python代码问题排查与修复

是否可以直接将打印的内容输出到CSV?

可以,但需要先把排序后的姓名暂存到变量中,不能直接复用print输出的内容写入CSV。

原代码存在的问题

  • 读取txt的代码块中,你将迭代变量命名为和文件对象相同的file,不仅覆盖了原文件对象,也没有存储排序后的姓名结果,出了第一个with块后就无法拿到排序后的数据
  • csv.writer()的第一个入参要求是可写的文件对象,你错误传入了列表names,不符合方法调用要求
  • 写入块中的print(file)调用的是第一个代码块中已经被关闭且被覆盖的变量,无法输出你需要的姓名数据

修正后可运行的完整代码

import csv

# 读取txt文件并排序,结果存储到列表
sorted_names = []
with open('/users/h/documents/pyprojects/boy-names.txt','r', encoding='utf-8') as f:
    # 逐行读取,去掉首尾空白字符后排序,过滤空行
    sorted_names = sorted(line.strip() for line in f if line.strip())

# 控制台输出排序结果
for name in sorted_names:
    print(name)

# 写入CSV文件,每个姓名占第一列的单独一行
with open('/users/h/documents/pyprojects/boy-names.csv', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file)
    # 写入表头
    writer.writerow(['Column1'])
    # 循环写入每个姓名
    for name in sorted_names:
        writer.writerow([name])

内容的提问来源于stack exchange,提问作者the hank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:27:04