如何使用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
相关产品推荐
相关产品推荐

