我正在寻找一种高效的方法来加载一个包含大量数据的文件。
该文件的格式如下:
1\tword1\tdata
2\tword2\tdata
3\tword3\tdata
\r\n
1\tword4\tdata
2\tword2\tdata
\r\n
其中,\r\n定义了由单词组成的句子的结尾。
我想要加载该文件并保存其结构,即我想要引用句子和句子中的单词。总的来说,我想要得到像这样的结果。
该文件的格式如下:
1\tword1\tdata
2\tword2\tdata
3\tword3\tdata
\r\n
1\tword4\tdata
2\tword2\tdata
\r\n
其中,\r\n定义了由单词组成的句子的结尾。
我想要加载该文件并保存其结构,即我想要引用句子和句子中的单词。总的来说,我想要得到像这样的结果。
data = [sentence1, sentence2,... ]
其中 sentence = [word1,word2,...]
逐行加载文件需要很长时间,按批次加载文件更加高效,但是我不知道如何解析和划分数据到句子中。
目前我使用以下代码
def loadf(filename):
n = 100000
data = []
with open(filename) as f:
while True:
next_n_lines = list(islice(f, n))
if not next_n_lines:
break
data.extend([line.strip().split('\t') for line in next_n_lines])
使用这段代码,我不知道如何将数据分成句子,此外我怀疑extend
并没有实际上扩展当前列表,而是创建一个新的并重新赋值,因为它非常慢。
我会非常感谢任何帮助。
extend
比每次append
每一行更快。 - user16168<
而不是cat
。 - user2357112