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

Python实现每10行文本插入空行的功能问题求助

解决移除空行后每10行插入空行的问题

你的代码核心问题出在第二部分的行数处理逻辑:你遍历的是字符串的每个字符而非行数,导致i % 10的判断完全无效;同时直接在原字符串后追加换行符会打乱原有内容结构。

以下是修正后的代码,同时优化了效率和可读性:

# 第一步:收集所有非空行(过滤全空格/空行)
non_empty_lines = []
with open("dangerousGame.txt") as f:
    for line in f:
        if not line.isspace():
            non_empty_lines.append(line)

# 第二步:每10行插入空行
formatted_content = []
for line_count, line in enumerate(non_empty_lines, start=1):
    formatted_content.append(line)
    # 每10行末尾添加空行,避免最后一行后出现多余空行
    if line_count % 10 == 0:
        formatted_content.append('\n')

# 第三步:写入文件
with open("test.txt", "w") as output_file:
    output_file.write(''.join(formatted_content))

关键改进点:

  • 用列表存储非空行:字符串是不可变类型,多次拼接会产生大量临时对象,列表append操作更高效
  • 使用enumerate(start=1)直接计数行数:从1开始计数,刚好匹配"每10行"的需求,无需额外维护计数器
  • 单独维护格式化后的内容列表:避免直接修改原数据,逻辑更清晰
  • 最后用''.join()合并列表:比循环拼接字符串效率高得多

对你之前尝试的补充说明:

  • 查找'\n'的思路没错,但需要先把内容按行拆分(而非遍历单个字符),用列表存储每行内容后再处理计数
  • 拆分列表的方法可行,你之前没成功大概率是计数逻辑出错,比如从0开始计数导致插入位置偏移,或是没有正确维护新的内容列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:35:31