【发布时间】:2011-09-06 20:46:20
【问题描述】:
给定两个文件,一个包含以下形式的条目:
label1 label2 name1
label1 label3 name2
和其他的形式:
label1 label2 name1 0.1 1000
label9 label6 name7 0.8 0.5
假设您想从文件 2 中提取前三个元素出现在文件 1 中的一行(顺序很重要)的那些行 - 关于如何快速实现圆顶的任何建议?
给定上述示例数据的任何此类脚本的输出文件将是:
label1 label2 name1 0.1 1000
我玩过蟒蛇:
inp = open(file1.txt, 'r')
look_up = [i.split() for i in inp.readlines()]
inp.close()
inp = open('file2', 'wt')
holder = []
line = inp.readline()
while line:
line = line.split()
if [line[0], line[1], line[2]] in look_up:
holder.append(line)
line = inp.readline()
不过,这似乎需要一段时间。这些文件相当大。
谢谢!
【问题讨论】:
-
“相当大”有多大?兆字节?千兆字节?太字节?
-
我很想知道您的长期尝试是否能够在您写下并得到这个问题的答案的时间内完成。对于一次性问题,最简单的解决方案通常是最好的,即使它不是最优的。
-
@ Mark - 我的长期运行尝试被划分为 16 个作业并放在一个集群上。 6小时后还在运行!哎呀!
标签: python parsing command-line