如何用Julia搜索文件行并提取目标行前两行的数值
嘿,这个问题其实很好解决,核心思路就是用一个小缓存来记录最近读过的两行内容,不用费劲去回溯文件指针~
我给你捋清楚具体步骤,再附上代码示例:
解决思路
- 准备一个长度最多为2的列表,用来缓存刚读过的两行文本
- 逐行遍历文件内容:
- 先检查当前行是不是包含"Add",如果是的话,直接从缓存里取前两行的数值
- 然后把当前行加入缓存,同时确保缓存始终只保留最近的两行(超过2行就把最早的那行删掉)
- 从缓存的行里提取数值时,按照你给出的格式(
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.
相关产品推荐
相关产品推荐

