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

如何按每5条记录拆分文件生成新文件,求Unix或Python简便实现方法

文件按每5条拆分的实现方案

方案1:Unix 命令实现(无需额外写复杂逻辑)

方法A:使用awk(全平台兼容)

直接运行以下命令即可完成拆分:

awk 'NR%5==1 {output_file="abc"++idx".txt"} {print > output_file}' demo.txt

逻辑说明:

  • 行数为1、6、11…的时候,自动生成新的输出文件名abc1.txt/abc2.txt/abc3.txt
  • 所有行自动写入当前生效的输出文件,不足5行的剩余内容自动生成单独文件

方法B:使用split命令(GNU环境通用,比如Linux)

split -l 5 -d --numeric-suffixes=1 --additional-suffix=.txt demo.txt abc

参数说明:

  • -l 5:指定每5行拆分一个文件
  • -d:使用数字作为文件后缀
  • --numeric-suffixes=1:数字后缀从1开始计数
  • --additional-suffix=.txt:统一添加.txt后缀

方案2:Python 实现(可自定义扩展逻辑)

如果需要后续增加自定义处理逻辑,可以用以下Python代码实现:

# 可按需调整配置
INPUT_PATH = "demo.txt"
LINES_PER_FILE = 5
OUTPUT_PREFIX = "abc"
OUTPUT_SUFFIX = ".txt"

file_index = 1
temp_lines = []

with open(INPUT_PATH, 'r', encoding='utf-8') as in_f:
    for line in in_f:
        temp_lines.append(line)
        if len(temp_lines) == LINES_PER_FILE:
            # 攒够指定行数写入新文件
            with open(f"{OUTPUT_PREFIX}{file_index}{OUTPUT_SUFFIX}", 'w', encoding='utf-8') as out_f:
                out_f.writelines(temp_lines)
            temp_lines = []
            file_index += 1
    # 处理最后剩余不足指定行数的内容
    if temp_lines:
        with open(f"{OUTPUT_PREFIX}{file_index}{OUTPUT_SUFFIX}", 'w', encoding='utf-8') as out_f:
            out_f.writelines(temp_lines)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 23:54:06