将文本文件中的单词添加到列表中(python 2.7)

时间:2011-11-26 14:58:53

标签: python text lines

假设我有一个文本文件 我的目标是编写一个函数,该函数接收一些要在文本文件中查找的行并返回一个列表,列表中的每个单元格都包含一行完全来自该行。
知道怎么做的吗?

感谢

2 个答案:

答案 0 :(得分: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 :(得分: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()

当然,这假设单词用空格分隔 - 在难以解析的文本中可能不是这种情况。