Форум сайта python.su
0
Есть необходимость заменить символы табуляции (\t) на пробелы. Суть заключается в том, что визуальное форматирование при этом должно остаться таким же, если бы в документе была табуляция.
Простая замена \t на фиксированное количество пробелов к сожалению не помогает, так как форматирование начинает плыть.
upd:
Решение найдено: str.expandtabs()
Отредактировано NickolasFox (Июнь 25, 2012 16:34:08)
Офлайн
52
Что значит “начинает плыть”? Возьмите любой нормальный редактор, он заменит вам табуляцию на пробелы.
Или
grep -rl '\t' ./ | xargs sed -i 's/\t/ /g'
Отредактировано fata1ex (Июнь 25, 2012 16:37:04)
Офлайн
0
Начинает плыть, значит что выравнивание по столбикам с помощью табуляции будет искажено при заменее онной на пробелы.
Кстати вот именно такой пример, который ты показал и поплывет:
#python27 >>>f = 'Год\t\tСумма платежа\t\t\tВся сумма\n2004\t\t100.0\t\t\t\t20301.0\n2012\t\t2000.15\t\t\t\t2030.0\n2012\t\t20000.15\t\t\t50000.15' >>> print f
Отредактировано NickolasFox (Июнь 26, 2012 16:08:16)
Офлайн
857
выравнивай через str.format() с помощью спецификаторов формата
вместо табуляций используй пробелы, чтобы на всех системах таблица одинаково отображалась
Офлайн