[Tutor] positional output
Christian Witts
cwitts at compuscan.co.za
Fri Nov 11 14:59:38 CET 2011
On 2011/11/11 02:59 PM, Cranky Frankie wrote:
> Thank you for your help on this. Now for "the rest of the story."
>
> I'm trying to build a script to parse IBM AIX DB2 DDL to line up the
> data types (it drives me crazy when the column data types are not
> lined up). For example, typical create table DDL might be hundreds of
> lines long but will look like this:
>
> <SNIP>
Something like this ? I left out checking for valid types etc, just
something rudimentary to maybe point you in the right direction.
>>> a = """COLUMN1 DECIMAL(8),
... COLUMN2 CHAR(20),
... COLUMN3 TIMESTAMP,
... COLUMN4 INTEGER,
... COLUMN5 DATE NOT NULL WITH DEFAULT,
... COLUMN6 CHAR(40)
... """
>>>
>>> for line in a.splitlines():
... newline = line.split()
... col_name = newline[0]
... col_type = newline[1].replace(',', '')
... field_sep = ',' if ',' in line else ''
... print '%-40s%s%s' % (col_name, col_type, field_sep)
...
COLUMN1 DECIMAL(8),
COLUMN2 CHAR(20),
COLUMN3 TIMESTAMP,
COLUMN4 INTEGER,
COLUMN5 DATE,
COLUMN6 CHAR(40)
If all you want to space it out nicely then .split(' ', 1) and '%-40s%s'
% (part1, part2) should work fine for you.
--
Christian Witts
Python Developer
//
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20111111/871d89cc/attachment.html>
More information about the Tutor
mailing list