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

如何使用Python将文本文件每行字符串拆分为三部分并分别存储

Python实现字符串按规则拆分存储

核心逻辑

  • 逐行读取源文本文件,仅移除行尾换行符,保留字符串原始内容,自动跳过空行
  • 分段长度计算规则:保证三个分段长度差值不超过1,实现尽可能平均的拆分效果
    • 对长度为n的字符串,先计算基础段长base = n // 3,余数remainder = n % 3
    • 余数为0时三个段长均为base,直接三等分
    • 余数不为0时,前remainder个分段长度为base + 1,剩余分段长度为base:比如长度14的字符串计算得base=4、remainder=2,拆分结果为5、5、4,完全匹配示例要求;长度26的字符串按此规则拆分为9、9、8,若需要调整为9、8、9或8、8、9的分配方式,仅需修改段长分配顺序即可,均满足长度差不超过1的要求
  • 每行拆分得到的三个分段,按顺序分别追加写入三个目标文件,每个分段占目标文件的一行

完整实现代码

# 按需修改文件路径配置
source_file = "input.txt"  # 存储原始字符串的源文件路径
output_files = ["part1.txt", "part2.txt", "part3.txt"]  # 三个分段的输出文件路径

def split_three_part(content: str) -> tuple[str, str, str]:
    str_len = len(content)
    base_len = str_len // 3
    rem = str_len % 3
    # 计算各段切片边界
    split1 = base_len + (1 if rem > 0 else 0)
    split2 = split1 + base_len + (1 if rem > 1 else 0)
    return content[:split1], content[split1:split2], content[split2:]

if __name__ == "__main__":
    # 上下文管理器同时管理所有文件句柄,自动处理关闭
    with open(source_file, "r", encoding="utf-8") as f_src, \
         open(output_files[0], "w", encoding="utf-8") as f1, \
         open(output_files[1], "w", encoding="utf-8") as f2, \
         open(output_files[2], "w", encoding="utf-8") as f3:
        for line in f_src:
            # 仅去除windows/unix换行符,不修改字符串首尾原有空格/特殊字符
            clean_line = line.rstrip("\n\r")
            if not clean_line:
                continue
            p1, p2, p3 = split_three_part(clean_line)
            f1.write(f"{p1}\n")
            f2.write(f"{p2}\n")
            f3.write(f"{p3}\n")
    print("拆分完成,结果已写入对应输出文件")

使用说明

  • 将source_file变量的值替换为你本地存储原始字符串的文本文件实际路径
  • 三个输出文件默认生成在脚本运行的当前目录,可通过修改output_files列表自定义存储路径和文件名
  • 代码默认使用utf-8编码读写,适配示例中出现的非ASCII特殊字符,如果源文件使用GBK等其他编码,修改open函数中的encoding参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:57:21