【发布时间】:2016-10-20 10:25:23
【问题描述】:
我有一个包含x 值的文件,每个值都在自己的行中。
我需要能够从该文件中获取n 值的数量,将它们放入一个数组中,将该数组传递给一个新进程,清除该数组,然后从文件中获取另一个n 值的数量来提供给下一个过程。
我遇到的问题是当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不为空)