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

Python 3如何批量提取.ls文档指定数据并导出至Excel

.ls文件批量提取数据实操方案

readlines() 本身不支持传入过滤规则直接筛选特定行,没必要先把所有行全读入内存再筛选,逐行遍历判断的方式效率更高,100个文件的处理量跑起来几乎没有延迟。

  • 核心逻辑不要用readlines()全量读,直接迭代文件对象逐行校验,符合规则的内容直接存入结果列表即可,基础代码框架如下:
import os

# 替换成你自己的文件路径
ls_file_dir = "./ls_files"
output_path = "./提取结果.txt"
res_list = []

for filename in os.listdir(ls_file_dir):
    if not filename.endswith(".ls"):
        continue
    file_full_path = os.path.join(ls_file_dir, filename)
    # 注意encoding参数匹配你文件的实际编码,工业软件导出的.ls很多是gbk编码,报解码错就换gbk试
    with open(file_full_path, "r", encoding="utf-8") as f:
        for line in f:
            # 先去掉行首尾的换行、空格
            clean_line = line.strip()
            # 下面替换成你自己的匹配规则,几个常用规则示例:
            # 1. 行内包含指定关键词就保留
            if "目标关键词" in clean_line:
                # 建议带上来源文件名,后续导Excel好溯源
                res_list.append(f"{filename},{clean_line}")
            # 2. 匹配固定开头/结尾的行
            # if clean_line.startswith("固定开头字符"):
            # if clean_line.endswith("固定结尾字符"):
            # 3. 要提取行内片段的话,用split拆分或者正则匹配即可
            # 比如行格式为"测试结果: 98.5 单位:%",要提取数值的话:
            # if "测试结果:" in clean_line:
            #     value = clean_line.split("测试结果:")[1].split()[0]
            #     res_list.append(f"{filename},{value}")
  • 写txt文件的时候统一用逗号或者制表符\t做字段分隔,Excel可以直接识别分列,不用额外做导入处理。如果用逗号分隔,直接把后缀改成.csv,双击就能用Excel打开,比txt更方便。写文件参考代码:
# 用utf-8-sig编码避免Excel打开乱码
with open(output_path, "w", encoding="utf-8-sig") as f:
    # 先写表头,对应你提取的字段
    f.write("来源文件,提取内容\n")
    for item in res_list:
        f.write(f"{item}\n")

小提示:如果你的匹配规则比较复杂,比如要提取特定格式的编号、数值,直接用Python内置的re正则模块做匹配即可,灵活度比纯字符串判断高很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:18:25