2013-06-03 59 views
0

我正在編寫一個程序來解析IETF的Internet草案,並提取標題,日期,協議和作者所在國家等內容。我意識到這已經在之前完成了(arkko.com),但它是一個自我強加的編程練習。Python 2.7:如何開始在文檔中解析

我遇到的問題是這樣的:

使用一些邏輯,一些基本的分析,並

position = doc.tell() 

我已經精確的識別每個文檔的地步,我需要開始檢查線路和尋找,識別和撤出作者的原籍國。我可以得到的精確點:

doc.seek(position) 

我遇到的問題是......那麼是什麼?已經到了那個位置,我已經嘗試了我所知道的文件和字符串方法的每個組合,以開始解析任意數量的以下行,但是我無法使其工作。

對不起,我沒有任何完整的代碼片段,但我嘗試了太多的方法,我想我可能會吠叫完全錯誤的樹在這一點上。

編輯:其實,我想出了一個相當簡單的解決方案:

我通過文件去了一次,數線,並指出地方,我需要開始解析的行號。

然後我再次通過文件計數行,當行數大於第一行數時,我開始解析。

可能不是最優雅的解決方案,我認爲我應該能夠使用doc.seek()來避免第二次計數,但它的工作原理。而現在我知道一個字符串和文件操作的區域,我需要多探索一下。

+0

也許這是幫助:http://stackoverflow.com/questions/620367/python-how-to-jump-to-a-particular-line-in-a-huge-text-file – pypat

+0

請描述「文件和字符串方法的每一種組合「你知道,什麼不能與他們合作。 – 2013-06-03 14:48:24

回答

1

你只需要撥打doc.read(some_buffer_length),你會得到一個字符串。

你如何處理該字符串是一個完全獨立的問題,但它是否來自文件的開頭並不重要。