我正在编写一个程序来清理一些时态数据。该计划的目标是获取两个文件,其中包含有关相同时间步骤的不同信息,并将这些信息组合在一起。
程序的第一部分将一个文件转换为二叉搜索树。第二部分查看第一个文件的每一行,提取所需数据,并在同一时间步搜索BST中的数据。
我遇到的问题是,使用print语句,我可以在读取3-4k行文本后告诉for循环结束,而实际上大约有200k行。此外,该程序甚至没有开始第二个for循环。 该程序实际上适用于较小的文本文件,但这不是我所需要的。
以下是我的代码的缩短版本。 Elapsed已定义但未包括在内。
setrecursionlimit(15000)
def extract_bid_ask(bid_file, ask_file):
labels = []
fvecs = []
ask_bst = bst.BinarySearchTree()
with open(ask_file) as file:
for line in reversed(list(file)):
row = line.split(',')
if float(row[2]) != -1.0:
ask_bst.put(elapsed, [float(row[2]), float(row[5])])
with open(bid_file) as file:
for line in file:
row = line.split(',')
if float(row[2]) != -1.0:
asks = ask_bst.get(elapsed)
if asks is not None:
fvecs.append([elapsed, float(row[2]), float(row[5]), float(asks[0]), float(asks[1])])
labels.append(int(row[0]))