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

如何用Julia搜索文件行并提取目标行前两行的数值

嘿,这个问题其实很好解决,核心思路就是用一个小缓存来记录最近读过的两行内容,不用费劲去回溯文件指针~

我给你捋清楚具体步骤,再附上代码示例:

解决思路

  1. 准备一个长度最多为2的列表,用来缓存刚读过的两行文本
  2. 逐行遍历文件内容:
    • 先检查当前行是不是包含"Add",如果是的话,直接从缓存里取前两行的数值
    • 然后把当前行加入缓存,同时确保缓存始终只保留最近的两行(超过2行就把最早的那行删掉)
  3. 从缓存的行里提取数值时,按照你给出的格式(push constant X),直接取每行最后一个元素就行

代码示例(以Python为例)

with open("your_file.txt") as f:
    # 初始化缓存,用来存最近2行的内容
    last_two = []
    for line in f:
        # 清理行首尾的空白和换行符
        cleaned_line = line.strip()
        # 跳过空行,避免干扰缓存
        if not cleaned_line:
            continue
        
        # 遇到包含"Add"的行,就从缓存提取数值
        if "Add" in cleaned_line:
            # 先判断缓存里有没有足够的行,防止文件开头就出现Add的情况
            if len(last_two) >= 2:
                # 拆分每行内容,取最后一个元素作为数值
                num1 = last_two[0].split()[-1]
                num2 = last_two[1].split()[-1]
                print(f"{num1} {num2}")
        
        # 更新缓存:加入当前行,保持最多2行
        last_two.append(cleaned_line)
        if len(last_two) > 2:
            last_two.pop(0)

举个例子验证

假设你的文件内容是:

push constant 17
push constant 5
Add
push constant 3
push constant 9
Add

运行代码后会输出:

17 5
3 9

这个方法的好处是不用把整个文件都加载到内存里,哪怕是很大的文件也能高效处理,而且逻辑简单易懂~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:08:42