On Oct 16, 5:05 pm, John Townsend <[EMAIL PROTECTED]> wrote: > Joe had a good point! Let me describe what problem I'm trying to solve and > the list can recommend some suggestions. > > I have two text files. Each file contains data like this: > > Test file 1234 4567 8975 > > I want to compare the numbers in each text file. The data set (i.e. the > numbers) has a unique identifier: the "test" + the "file". The text files are > similar, but may not be exactly the same. > > My initial idea was to read the text files and turn each line into a > dictionary entry. A dict for each text file. Then walk through the dicts and > compare the numbers. > > If anyone has a better idea, I'd love to hear it.
If getting the diffs is the only thing you want to do with the data, your idea is good enough. For more open-ended data manipulation you should move to a database like in Dennis's reply but for a single simple task a DB (even sqlite) is probably an overkill. Here's a quick solution using the dicts approach: import sys from operator import sub def read_data(path): data = {} for line in open(path): fields = line.split('\t') data[tuple(fields[:2])] = map(float,fields[2:]) return data d1 = read_data(sys.argv[1]) d2 = read_data(sys.argv[2]) for key in d1: if key in d2: diffs = map(sub, d1[key], d2[key]) print key, diffs HTH, George -- http://mail.python.org/mailman/listinfo/python-list