У меня есть файл, содержащий x
количество значений, каждое в своей строке. Мне нужно принять n
номер значения из этого файла, поместить его в массив, передать этот массив в новый процесс, очистить массив и затем взять еще n
количество значений из файла, чтобы перейти к следующему процессу ,Python - обрабатывать кусок строк в файле
Проблема, с которой я столкнулся, заключается в том, что x
- это значение, подобное 12, и я пытаюсь дать, скажем, 10 кусков значений каждого процесса.
Первый процесс получит первые 10 значений без проблем, но у меня проблемы с оставшимися 2 до последнего процесса.
Проблема также возникнет, если, скажем, вы сообщите программе, чтобы дать каждому процессу 10 значений из файла, но файл имеет только 1 или даже 9 значений.
Мне нужно знать, когда я в последний набор значений, которые меньше, чем n
Я хочу, чтобы не принимать все значения в файле и хранить его в массиве все сразу, так как я мог бы работать в проблемы с памятью, если в этом файле было миллионы значений.
Вот пример того, что я пытался сделать:
chunk = 10
value_list = []
with open ('file.txt', 'r') as f:
for value in f:
value_list.append(value)
if (len(value_list) >= chunk):
print 'Got %d' % len(value_list)
value_list = [] # Clear the list
# Put array into new process
Это будет ловить каждый 10 в этом примере, но это не будет работать, если даже случилось быть менее 10 в файле, чтобы начать с.
просто использовать оставшиеся данные из 'value_list' после вашего цикла делается для вызова процесса в последний раз (если' value_list' не пуст) –