JS读取文本文件多行内容并按#VER开头行分割片段的方法咨询
实现思路
- 按行读取文件全部内容,先跳过开头的#DATA相关行与空行,直到匹配到第一个
#VER开头的行 - 初始化两个变量:
result存储所有分割完成的片段,current_segment存储当前正在收集的片段内容 - 逐行遍历文本:
- 若当前行以
#VER开头,先判断current_segment是否有内容,如果有就把它存入result并清空current_segment,再把当前#VER行加入current_segment - 若当前行不是
#VER开头,只要current_segment已经开始收集(即已经遇到过第一个#VER行),就直接把当前行加入current_segment
- 若当前行以
- 遍历结束后,把最后一个未存入的
current_segment加入result即可
实现代码(Python示例)
# 替换为你的实际文件路径 file_path = "test.txt" with open(file_path, "r", encoding="utf-8") as f: all_lines = f.readlines() result = [] current_segment = [] for line in all_lines: # 跳过开头未匹配到#VER之前的无关行 if not current_segment and not line.lstrip().startswith("#VER"): continue # 匹配到新的VER段起始行 if line.lstrip().startswith("#VER"): if current_segment: result.append(current_segment) current_segment = [] # 写入当前行到正在收集的片段 current_segment.append(line.rstrip("\n")) # 补充写入最后一个VER段 if current_segment: result.append(current_segment) # 后续可直接遍历result处理每个片段 for seg in result: # 此处替换为你自己的逐行处理逻辑 print("=== 新片段 ===") for row in seg: print(row)
这种逐行处理的逻辑不需要处理正则匹配的跨行问题,稳定性更高,适配你给出的文件结构,分割后的每个片段都包含从#VER行到下一个#VER前一行的所有内容。
内容的提问来源于stack exchange,提问作者Kevin Lindmark
相关产品推荐
相关产品推荐

