如何使用Python截取多行文本文件中&开头字符串的前300字符
Python实现指定规则的文本截断处理
不需要安装第三方依赖,用Python原生文件操作和字符串切片就能实现需求,逐行处理的逻辑对大文件也很友好。
核心实现逻辑
- 以只读模式打开原始文件,以写入模式打开待生成的新文件
- 逐行遍历原始文件内容,避免一次性全量加载占用过多内存
- 对每一行内容,截取前300个字符后写入新文件:Python的字符串切片是边界安全的,当行长度不足300时会自动返回整行内容,不会抛出索引错误
完整可运行代码
# 替换为你自己的文件实际路径 INPUT_PATH = "source.txt" OUTPUT_PATH = "result.txt" with open(INPUT_PATH, "r", encoding="utf-8") as f_in, \ open(OUTPUT_PATH, "w", encoding="utf-8") as f_out: for line in f_in: # 先剥离行尾换行符,避免换行符被计入300个字符的配额 content = line.rstrip("\n") # 截取前300个字符 cut_content = content[:300] # 写入处理后的内容,补回换行符 f_out.write(f"{cut_content}\n")
可按需修改的配置
- 如果需要过滤非
&开头的行,仅处理符合格式要求的内容,可以在切片前加入判断逻辑,不符合要求的行直接跳过:
if not content.startswith("&"): continue
- 如果需要保留非
&开头的行且不对这类行做截断,把上述判断分支里的continue替换为cut_content = content即可 - 如果你的文件使用GBK等非UTF-8编码,修改
open函数里的encoding参数为对应编码值即可
提示:上述代码的字符计数规则为Unicode字符计数,中文、英文、标点均记为1个字符;如果需要按字节长度截断,可以先对字符串做指定编码后再切片。
内容的提问来源于stack exchange,提问作者ammad aslam
相关产品推荐
相关产品推荐

