【发布时间】:2010-11-30 23:55:17
【问题描述】:
我想用它来读取 17770 个文件中的值,并将它们全部添加到一个字典对象的末尾。我有一台 8 核的机器。
这是代码
def run_item_preprocess ():
scores = {};
for i in range(1,17771):
filename1 = "x_" + str(i) + ".txt";
lines1 = open(filename1).readlines();
Item1 = {};
for line in lines1:
tokens = line.split(',');
Item1[int(tokens[1])] = int(tokens[2]);
for j in range(1,17771):
if j == i:
continue;
filename2 = "x_" + str(i) + ".txt";
lines2 = open(filename2).readlines();
Item2 = {};
for line in lines2:
tokens = line.split(',');
u = int(tokens[1]);
r = int(tokens[2]);
if u in Item1:
Item2[u] = r;
if i not in scores:
scores[i] = {};
scores[i]= (s(Item1,Item2),j);
【问题讨论】:
-
我正在寻找可以帮助我的人......我发布了我的代码
-
我读错了吗?您尝试将 17770 个文件中的每一个打开 17770 次?
-
在考虑让它在多线程中运行之前,您需要确保代码作为单线程正确运行。我严重怀疑这段代码是否符合您的要求。 (315772900 文件读取?)
-
是的......我必须这样做......所有文件加起来都是 2.3 Gb
-
是的,但是打开文件 3 亿次不是答案。数据库可能会有所帮助。我正在尝试弄清楚您对代码的实际操作。
标签: python multithreading