工作,我有這樣的代碼:的Python:itertools.islice不是在一個循環
#opened file f
goto_line = num_lines #Total number of lines
while not found:
line_str = next(itertools.islice(f, goto_line - 1, goto_line))
goto_line = goto_line/2
#checks for data, sets found to True if needed
line_str是正確的第一遍,但之後每次傳球被讀取不同的線路,那麼它應該。
因此,例如,goto_line開始了作爲1000它讀取線1000就好了。然後下一個循環,goto_line是500,但它不讀取線500它讀一些線接近1000
我試圖讀取大文件的特定行不讀超過必要的。有時它會跳回一條線,有時會向前跳。
我也嘗試linecache,但我通常不會在同一文件上運行此代碼不止一次。
它讀什麼行,你期望它讀什麼行? (另外:請更深入地縮進 - 比方說4個空格 - 這很難以這種方式讀取。) – delnan 2011-02-16 18:21:10
對於我正在使用的內容,它被告知要讀第4382898行,並在第一遍時正確執行。然後goto_line更改爲2191449,但islice返回的是6574286行。 – Zeno 2011-02-16 18:25:48