假设我有一个文本文件
我的目标是编写一个函数,该函数接收一些要在文本文件中查找的行并返回一个列表,列表中的每个单元格都包含一行完全来自该行。
知道怎么做的吗?
感谢
答案 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()
当然,这假设单词用空格分隔 - 在难以解析的文本中可能不是这种情况。