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
相关产品推荐
相关产品推荐

