2011-11-26 44 views

回答

2

如果你是小文件的工作:

def get_words(mifile, my_line_number): 
    with open(mifile) as f: 
     lines = f.readlines() 
     myline = lines[my_line_number] #first line is 0 
     return myline.split() 

你在列表lines中的所有文件中的行。這對於很大的文件來說效率不高。在這種情況下,最好逐行迭代,直到到達所選行。

1

鑑於filename和行號(lineno),你可以提取該行的話是這樣的:

假設lineno不會太大:

import linecache 

line = linecache.getline(filename, lineno) 
words = line.split() 

或者,如果lineno很大:

import itertools 

with open(filename,'r') as f:   
    line = next(itertools.islice(f,lineno-1,None)) 
    words = line.split() 

這當然假設單詞之間用空格分隔 - 這可能不是情況難以解析的文本。

+0

+1對於linecache,ops抱歉,每日投票達成。必須等待8個小時:-) – joaquin

+0

我們在這裏,我今天得到了一個裝滿了選票的新包 – joaquin

相關問題