Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2012 16:01:38

NickolasFox
Зарегистрирован: 2012-06-25
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена табуляции на пробелы

Есть необходимость заменить символы табуляции (\t) на пробелы. Суть заключается в том, что визуальное форматирование при этом должно остаться таким же, если бы в документе была табуляция.
Простая замена \t на фиксированное количество пробелов к сожалению не помогает, так как форматирование начинает плыть.

upd:
Решение найдено: str.expandtabs()

Отредактировано NickolasFox (Июнь 25, 2012 16:34:08)

Офлайн

#2 Июнь 25, 2012 16:36:35

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Замена табуляции на пробелы

Что значит “начинает плыть”? Возьмите любой нормальный редактор, он заменит вам табуляцию на пробелы.
Или

grep -rl '\t' ./ | xargs sed -i 's/\t/    /g'



Отредактировано fata1ex (Июнь 25, 2012 16:37:04)

Офлайн

#3 Июнь 26, 2012 16:07:39

NickolasFox
Зарегистрирован: 2012-06-25
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Замена табуляции на пробелы

Начинает плыть, значит что выравнивание по столбикам с помощью табуляции будет искажено при заменее онной на пробелы.

Кстати вот именно такой пример, который ты показал и поплывет:

#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
Если сохранить и применить такой способ как у тебя, то третий столбик поползет. Нужно было, чтобы не пополз. Вот для этого я искал способ: f.expandtabs() такое форматирование не калечит.

Отредактировано NickolasFox (Июнь 26, 2012 16:08:16)

Офлайн

#4 Июнь 27, 2012 03:23:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Замена табуляции на пробелы

выравнивай через str.format() с помощью спецификаторов формата
вместо табуляций используй пробелы, чтобы на всех системах таблица одинаково отображалась



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version