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

Python实现Excel数据转置写入TXT文件问题求助

解决Python写入TXT仅保留最后一行的问题

问题根源

你遇到的TXT只写入最后一行的问题,大概率是每次循环都用'w'模式重新打开文件,导致每次写入都会清空之前的内容;或是错误地将写入操作放在循环外,仅在最后执行一次写入。

修改方案

以下是基于openpyxl的修正代码,实现自动识别有效行、指定列读取、转置写入(将Excel列的每行数据转为TXT的每行)、强制CRLF换行,并自动管理文件关闭:

from openpyxl import load_workbook

# 加载Excel文件,只读模式提升处理效率
wb = load_workbook('INPUT_01.xlsx', read_only=True)
ws = wb.active  # 若需指定工作表,替换为wb['你的工作表名称']

# 指定要处理的目标列(openpyxl列索引从1开始,例如B列对应2)
target_col = 2

# 使用上下文管理器打开TXT文件,自动处理文件关闭和CRLF格式
# 'w'模式会覆盖旧文件,如需追加内容改用'a';newline='\r\n'强制Windows换行符
with open('output.txt', 'w', encoding='utf-8', newline='\r\n') as txt_file:
    # 遍历目标列的所有行,仅提取单元格值(values_only=True)
    for row in ws.iter_rows(min_row=1, max_row=ws.max_row,
                            min_col=target_col, max_col=target_col,
                            values_only=True):
        cell_val = row[0]
        # 跳过空行,避免写入无效内容
        if cell_val is None:
            continue
        # 将单元格内容转为字符串写入TXT,自动添加CRLF换行
        txt_file.write(f"{cell_val}\n")

关键说明

  1. 文件写入模式:用with语句在循环前打开文件,全程保持打开状态,循环内持续写入,避免重复打开覆盖内容。
  2. CRLF格式:通过newline='\r\n'参数强制写入Windows标准的CRLF换行符,无需手动拼接\r\n。
  3. 有效行识别:利用iter_rows精准遍历指定列,结合空值判断跳过Excel中的空白单元格,只处理有效数据行。
  4. 自动关闭文件:上下文管理器with会在代码块结束后自动关闭文件,无需手动调用close(),避免资源泄漏。

内容的提问来源于stack exchange,提问作者Shawn Randeny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:05:05