Alan Gauld wrote: > On 14/02/15 09:55, Peter Otten wrote: > >> with open(headerfile) as f: >> lookup_header = { >> headerdata[:6]: headerdata.rstrip("\n") for headerdata in f} >> >> Then you can iterate over the lines in linefile, extract the key from >> that and look it up in the dict: >> >> with open(linefile) as lines, open("hl.dat", "w") as joined: >> for line in lines: >> try: >> header = lookup_header[line[:6]] >> except KeyError: >> header = "" >> print(line.rstrip("\n"), header, sep="", file=joined) >> > > The try/except could be written more concisely as > > header = lookup_header.get(line[:6], "")
Yep, I originally had something like for line in lines: try: header = lookup_header[line[:6]] except KeyError: contine print(...) in mind. By the way, the print(..., sep="", ...) # no idea why I did this is wrong and should be omitted. Also, you (OP) probably don't want the key column to appear twice in the output, so the second occurence can be sliced off: print(line.rstrip("\n"), header[6:], file=joined) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor