【发布时间】:2010-08-02 15:34:29
【问题描述】:
在我的previous question 中实施了一些解决方案后,我想出了以下解决方案:
reader = open('C://text.txt')
writer = open('C://nona.txt', 'w')
counter = 1
names, nums = [], []
row = reader.read().split(' ')
x = len(row)/2
for (a, b) in [(c, d) for c, d in zip(row[:x], row[x:]) if d!='na']:
print counter
counter +=1
names.append(a)
nums.append(b)
writer.write(' '.join(names))
writer.write(' ')
writer.write(' '.join(nums))
该程序适用于较小的样本数据集。但是,当我使用完整的数据集并导致 python 崩溃时,它会冻结。关于如何克服这个问题的任何建议?
【问题讨论】:
-
请贴出Python崩溃时的stacktrace。是不是内存不够了?
-
您可以让 python 将其分解并将其导出为 10 - 20 个临时文件,然后调用一个脚本来处理每个文件。如果您的计算机有多个内核,这也将执行“多线程”。
-
您是否考虑过将数据转换为更标准的格式,例如 csv 并从那里开始使用?
-
当然,返回并接受您之前问题的答案。