def _writetext(table, f, prologue, template, epilogue): if prologue is not None: f.write(prologue) it = iter(table) flds = it.next() for row in it: rec = asdict(flds, row) s = template.format(**rec) f.write(s) if epilogue is not None: f.write(epilogue)
def appendtext(table, source=None, template=None, prologue=None, epilogue=None): """ As :func:`totext` but the file is opened in append mode. """ source = _write_source_from_arg(source) with source.open_('ab') as f: if prologue is not None: f.write(prologue) it = iter(table) flds = it.next() for row in it: rec = asdict(flds, row) s = template.format(**rec) f.write(s) if epilogue is not None: f.write(epilogue)
def totext(table, source=None, template=None, prologue=None, epilogue=None): """ Write the table to a text file. E.g.:: >>> from petl import totext, look >>> look(table) +-------+-------+ | 'foo' | 'bar' | +=======+=======+ | 'a' | 1 | +-------+-------+ | 'b' | 2 | +-------+-------+ | 'c' | 2 | +-------+-------+ >>> prologue = \"\"\"{| class="wikitable" ... |- ... ! foo ... ! bar ... \"\"\" >>> template = \"\"\"|- ... | {foo} ... | {bar} ... \"\"\" >>> epilogue = "|}" >>> totext(table, 'test.txt', template, prologue, epilogue) >>> >>> # see what we did ... with open('test.txt') as f: ... print f.read() ... {| class="wikitable" |- ! foo ! bar |- | a | 1 |- | b | 2 |- | c | 2 |} The `template` will be used to format each row via `str.format <http://docs.python.org/library/stdtypes.html#str.format>`_. """ source = _write_source_from_arg(source) with source.open_('wb') as f: if prologue is not None: f.write(prologue) it = iter(table) flds = it.next() for row in it: rec = asdict(flds, row) s = template.format(**rec) f.write(s) if epilogue is not None: f.write(epilogue)