-2
這裏有很多二進制搜索的幫助,但找不到這個特定的問題。這就是我在IDLE中得到的結果,同樣的事情發生在我的代碼中。Python二進制搜索readline不會返回整行
首先,我找到要被搜索的文件的文件大小(每一行是兩個整數,由製表符分隔和排序條件爲第一整數):
>>> import os
>>> a=os.path.getsize("C:\\testfile.txt")
>>> a
9341L
打開文件
>>> f = open("C:\\testfile.txt",'r')
尋求到文件的中間
>>> f.seek(int(a/2))
'\n'
(做的二進制搜索等測試之前)的行應'534\t1026\n'
即不是整行,而是從'seek'點開始的其餘行。我找到的二進制搜索代碼似乎都沒有說如何爲每個新的「搜索」獲取整個行。
感謝,
S.
解決了,感謝休。
對不起,我投下了。你甚至搜索瞭解什麼獲取回報?嘗試谷歌搜索os.path.getsize – PyNEwbie
我沒有意識到getsize是問題。問題是readline()上的所有信息都表示它讀取整行,而不是隻讀取行的其餘部分。 Hugh的解決方案似乎很簡單,只需執行兩次readline()。 – suze1992