我正在编写一个程序来解析 IETF 互联网草案并提取标题、日期、协议和作者所在国家/地区等内容。我意识到这已经完成(arkko.com),但这是一个自我强加的编程练习。
我遇到的问题是这样的:
使用一些逻辑,一些基本的解析,以及
position = doc.tell()
我已经准确地确定了每个文档中我需要开始检查行并查找、识别和提取作者的原籍国的点。我可以通过以下方式达到这一点:
doc.seek(position)
我遇到的问题是……然后呢?到达那个位置后,我尝试了我知道的文件和字符串方法的每种组合来开始解析任意数量的以下行,但我无法让它工作。
抱歉,我没有任何完整的代码片段,但我尝试了太多次,我想我可能会在这一点上完全错误的树。
编辑:其实我想出了一个相当简单的解决方案:
我浏览了一次文件,计算了行数,并记下了我需要开始解析的行号。
然后我再次遍历文件计数行数,当行号大于第一行号时,我开始解析。
可能不是最优雅的解决方案,因为我认为我应该能够使用 doc.seek() 来避免第二次计数,但它确实有效。现在我知道了我需要进一步探索的字符串和文件操作领域。