У меня есть класс, чтобы напечатать «TextBoxes», которые похожи наColorama и расстояние между ними
#========================================#
| |
| |
| |
| |
| |
#========================================#
При заданных размеров. Затем вы можете назначить текст линий, вызвав метод setLineText. Каждая строка сохраняется в списке и печатается с помощью метода render с помощью простого цикла.
Все работает нормально, и денди, пока я не ввести Colorama в смесь, когда я использую мой setLineText method с любым Colorama форматирования строки, которые я изменил всегда будет коротким 5 пространства на вызов, я использовал для форматирования
Например,
MainBox = views.TextBox(35, 6)
MainBox.setLineText(1, "Hello! " + Fore.RED + User.name + Fore.RESET)
MainBox.Render()
выведет
#=================================#
| Hello! User |
| |
| |
| |
#=================================#
Мой вопрос, есть ли способ избежать этого избежать от Happenin г?
EDIT: В качестве дополнительной заметки я использую окна.
ANSWER: После тонны тестирования любое регулярное выражение, которое я мог бы придумать, не сработало. Мое решение состоит в том, чтобы просто использовать sys.stdout.write() для печати изменений цвета и сбрасывания. Он работает хорошо и вряд ли даже нужно изменить текущий код.
[Здесь] (http://pastebin.com/aMbXuTW6) является пастой метода. Это часть класса, но вы должны понимать, что он делает. Я не совсем уверен, как Колорама делает это волшебство, может быть, я должен изучить его. – THUNDERGROOVE
Отправьте этот код как часть своего вопроса, вам будет легче ответить другим пользователям :-) (и тем, у кого такая же проблема, чтобы получить ответы) – halflings
Добавлено решение, которое должно устранить вашу проблему:) Прочтите этот вопрос SO для получения дополнительной информации о том, как удалить непечатаемые символы: http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python – halflings