【发布时间】:2014-03-20 09:52:37
【问题描述】:
我正在尝试使用 python 解析大文本文件。
这些文件的语法如下:
<option1> {
<variable1>=<value1>; //<comment>
<variable2>=<value2>;
..
<variableN>=<valueN>; //<comment>
}
<option2> {
<variable1>=<value1>; //<comment>
<variable2>=<value2>;
..
<variableN>=<valueN>; //<comment>
}
...
...
<optionN> {
<variable1>=<value1>; //<comment>
<variable2>=<value2>;
..
<variableN>=<valueN>; //<comment>
}
我想获得例如<optionK>[<variableT>] 值。
是否有使用文件解析器的最佳方法来做到这一点?
【问题讨论】:
-
@sshashank124:OP 说文件很大;正则表达式会要求您将整个文件读入内存,这可能不是最实用的建议?
-
@MartijnPieters:
mmap允许您将正则表达式应用于大文件。见How to read tokens without reading whole line or file -
你可以尝试类似
lepl(已停产)来解析文件,这里是code example -
@JFSebastian:现在无法查找,但前几天 Jon Clements 发现如果文件大于可用内存,则无法查找。但我在那里没有第一手经验,我很乐意听从你的意见。我自己会逐行读取文件检测部分。
-
@MartijnPieters:我的回答明确表示 “即使文件不适合内存,它也可以工作。” 如果我没有尝试过,我不会这么说它。我也不会使用单个正则表达式来解析文件。我只是提到它是说有可能
标签: python parsing text-files