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

使用Pandas写入TXT时,如何在Sentence #列值变化处添加空行?

解决方案

你的问题出在三个核心点:

  1. 转义字符写错:应该用\n而非/n
  2. 用append添加的是字符串值,不是真正的换行符,to_csv会把它当成一行内容写入
  3. 循环追加写入的方式容易导致换行逻辑混乱

下面是两种可行的解决方法:

方法一:分组拼接字符串(简洁高效)

先按Sentence #分组,把每组的join值用换行连接,再用两个换行分隔不同句子组,最后一次性写入文件:

import pandas as pd

# 假设df已定义
# 生成完整内容:每组内换行,组间空行
content = '\n\n'.join(['\n'.join(group) for _, group in df.groupby('Sentence #')['join']])

# 写入文件
with open('file.txt', 'w', encoding='utf-8') as f:
    f.write(content)

方法二:逐行遍历(直观可控)

逐行遍历数据,跟踪前一句的编号,当编号变化时插入空行:

prev_sentence = None
with open('file.txt', 'w', encoding='utf-8') as f:
    for _, row in df.iterrows():
        # 不是第一行且句子编号变化时,先写空行
        if prev_sentence is not None and row['Sentence #'] != prev_sentence:
            f.write('\n')
        # 写入当前join内容
        f.write(f"{row['join']}\n")
        prev_sentence = row['Sentence #']

两种方法都能生成你需要的格式:每个句子的内容占多行,句子之间用空行分隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:24:24