clp: Thanx to a recent thread I am able to have a print string with a variable number of formatters -- what I now lack for the creation of an elegant print statement is a tuple -- following is the code, the last line of which does not work:
<code> #!/usr/bin/python import xml.sax import eaddyhandler parser = xml.sax.make_parser() h = eaddyhandler.EAddyHandler() parser.setContentHandler(h) parser.parse(".ea.xml") for i in range(1, len(h.m)): k = "r%06d" % i col = len(h.m[k]) if col > 2 and h.m[k][0] > " ": print (col * '%-30s') % h.m[k] </code> What's going on is I have an oocalc spreadsheet for e-addresses -- column 1 has the name, and then I keep adding e-addresses for ppl when they get new ones, as successive entries on their row, meaning each row has a variable number of e-address columns. I have an xml extractor that runs before this script using odf.opendocument, which works famously. My class, EAddyHandler, also works, and builds its dictionary of rows in 'm', forgive me, no flames please, I needed a short name for the dictionary I have to type it so many times. The key to 'm' is an 'r' + row number, so I can get stuff out of it and it's still in the right order, fun with dictionaries. What I was hoping for was something that could vary the source for the print statement as cleanly as the 'col' multiplication creates the print format, but the list, 'h.m[k]' is not a tuple, it's a list, and I'm just not quite where I am trying to get with this. If there were a builtin function that took a list and returned a tuple, I'd be there, but if there is such a thing I need someone to point me at it. I can't help thinking I am missing some obvious construct, and I'll be advised to go reread the tutorial, but I'm not there, and if you can take pity on me and point me there, I'll be your friend for life. Well -- I'll be grateful... TIA, Scott -- http://mail.python.org/mailman/listinfo/python-list