Я ищу эффективный способ загрузки огромного файла с данными.Python разбор огромного файла
Файл имеет следующий формат
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
расширить текущий список, но создать новый один и переназначить, потому что он очень медленный.
Буду признателен за любую помощь.
«строка файл Загрузка по линии займет много времени, загрузка файла партий гораздо более эффективных» - Вы уверены в этом? Вы на самом деле это время? Python читает файл в кусках для подачи итератора строки, поэтому вам не нужно его обрабатывать самостоятельно. – user2357112
Каков размер файла примерно? –
@TimZimmermann, ~ 700Mb – user16168