我查了
this,
this和
this.
第三个链接似乎有答案,但它没有完成这项工作.
我无法找到将整个文件带到主内存的解决方案,因为我将使用的文件非常大.所以我决定使用islice,如第3个链接所示.前2个链接无关紧要,因为它们仅用于2行或读取1000个字符.而我需要1000行.现在N是1000
我的文件包含100万行:
样品:
1 1 1
1 2 1
1 3 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
1 9 1
1 10 1
因此,如果我一次读取1000行,我应该经历1000次,但是当我打印p以检查我已经完成了多少次时,它不会停留在1000.它在运行后达到19038838我的节目1400秒!!
码:
def _parse(pathToFile, N, alg):
p = 1
with open(pathToFile) as f:
while True:
myList = []
next_N_lines = islice(f, N)
if not next_N_lines:
break
for line in next_N_lines:
s = line.split()
x, y, w = [int(v) for v in s]
obj = CoresetPoint(x, y)
Wobj = CoresetWeightedPoint(obj, w)
myList.append(Wobj)
a = CoresetPoints(myList)
client.compressPoints(a) // This line is not the problem
print(p)
p = p+1
c = client.getTotalCoreset()
return c
我究竟做错了什么 ?