Format a simple (i.e. not nested) list into aligned columns.
Project description
In showing a long lists, sometimes one would prefer to see the value arranged aligned in columns. Some examples include listing methods of an object, listing debugger commands, or showing a numeric array with data aligned.
This is a Python module to format a simple (i.e. not nested) list into aligned columns. A string with embedded newline characters is returned.
Setup
$ python
>>> import columnize
With String data
Each column is only as wide as necessary. By default, columns are separated by two spaces; one was not legible enough. Set colsep to adjust the string separate columns. Set displaywidth to set the line width.
>>> g = ('bibrons', 'golden', 'madascar', 'leopard', 'mourning', 'suras', 'tokay')
>>> print(columnize.columnize(g, displaywidth=15)
bibrons suras
golden tokay
madascar
leopard
mourning
>>> print(columnize.columnize(g, displaywidth=19, colsep=' | '))
bibrons | suras
golden | tokay
madascar
leopard
mourning
>>> print(columnize.columnize(g, displaywidth=18, colsep=' | ', ljust=False))
bibrons | mourning
golden | suras
madascar | tokay
leopard
Normally, consecutive items go down from the top to bottom from the left-most column to the right-most. If arrange_vertical is set false, consecutive items will go across, left to right, top to bottom.
With numeric data
>>> print(columnize.columnize(['1', '2', '3', '4'], displaywidth=6)) # => '1 3\n2 4\n')
1 3
2 4
>>> print(columnize.columnize(list(range(1,6)), displaywidth=8))
1 3 5
2 4
By default entries are left justified:
>>> print(columnize.columnize(list(range(1,16)), displaywidth=10))
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
but you can change that with ljust or if arrange_array is set to True:
>>> print(columnize.columnize(list(range(1,16)), displaywidth=10, ljust=False))
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15
>>> print(columnize.columnize(list(range(1,5)), opts={'arrange_array':True, 'displaywidth':6}))
[1, 2
3, 4]
Credits
This module (essentially one function) was adapted from a private method of the same name from Python’s cmd module. Some adjustments and generalizations have been made.
Other stuff
Authors: Rocky Bernstein rockyb@rubyforge.org
License: MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for columnize-0.3.8-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d5213d604d039662fb2b5639c8df57c9917a78db8fcb152fa4f8eb58c5da9dc |
|
MD5 | b1a61b00b4ff5c430ca18ce02f3e2911 |
|
BLAKE2b-256 | dba02dfb72968083b9d09e7eeab0071e6312f95b28cf5c9a0a8ed48e3ac1d0f6 |