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

求助优化Python文件搜索方法:核心性能瓶颈突破

核心方法优化求助:从海量文件中提取含指定tid的行首did

我正在优化一个项目核心方法,它的耗时占比接近95%。功能是读取文件的每一行,若行中包含指定tid,则提取行首的数字(即document id,简称did)。

文件内容示例:

5168  268:0.0482384162801528 297:0.0437108092315354 352:0.194373864228161
5169  268:0.0444310314892627 271:0.114435072663748 523:0.0452228057908503

当前实现中,tid_add_colon_in_front(tid)方法会给纯字符串格式的tid前加冒号,did_tids_file是已打开的目标数据文件。当前代码如下:

def dids_via_tid(tid) -> set:
    did_tids_file.seek(0)
    dids = set()

    # 处理tid,添加前缀冒号用于匹配
    tid = tid_add_colon_in_front(tid)
    did_str = ""

    # 避免使用line.split,逐行处理
    for line in did_tids_file:
      did_str = ""

      if tid in line:
        for char in line:
          if char == " ":
            break
          did_str += char

        dids.add(did_str)
    return dids

之前我用line.split实现,但听说处理海量数据时这个方法的内存和时间开销更大。另外还试过用readLine循环读取,也没提升性能:

line = myFile.readLine()
while line:
 # 处理逻辑
 line = myFile.readLine()

求进一步的优化思路!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:52:55