Основная идея здесь состоит в том, чтобы объединить все слова в вашем тексте в один список, а затем печатать новую строку после каждого второго элемента (это для разбивки на две колонки). Если вам нужно 3 столбца, измените index% 2
на index% 3
#!/usr/bin/env python3
import sys
items = [i for l in sys.stdin
for i in l.strip().split()]
line = []
for index,item in enumerate(items,1):
line.append(item)
if index%2 == 0:
print("\t".join(line))
line = []
Пример вывода:
$ python recolumnate.py < input.txt
a aa
aaa b
bb bbb
c cc
ccc d
dd ddd
e ee
eee f
ff fff
g gg
ggg h
hh hhh
i ii
iii j
jj jjj
Версия с тремя столбцами (как сказано выше, только index% 3 == 0
изменено)
$ cat recolumnate.py
#!/usr/bin/env python3
import sys
items = [i for l in sys.stdin
for i in l.strip().split()]
line = []
for index,item in enumerate(items,1):
line.append(item)
if index%3 == 0:
print("\t".join(line))
line = []
$ python recolumnate.py < input.txt
a aa aaa
b bb bbb
c cc ccc
d dd ddd
e ee eee
f ff fff
g gg ggg
h hh hhh
i ii iii
j jj jjj