我有一個類打印「文本框」看上去類似COLORAMA和間距
#========================================#
| |
| |
| |
| |
| |
#========================================#
當給定尺寸。然後可以通過調用setLineText方法來分配行文本。 每一行都存儲在一個列表中,並通過一個簡單的for循環用方法渲染打印。
一切工作正常,很正常,直到我介紹彩色光的組合,當我用我setLineText method任何COLORAMA格式,我改變永遠是短按呼叫我用來格式化
例如5位線,
MainBox = views.TextBox(35, 6)
MainBox.setLineText(1, "Hello! " + Fore.RED + User.name + Fore.RESET)
MainBox.Render()
將輸出
#=================================#
| Hello! User |
| |
| |
| |
#=================================#
我的問題是,有沒有辦法避免防止這種happenin G?
編輯:作爲一個額外的說明,我使用的是windows。
答案: 經過大量的測試後,我可以想出任何正則表達式都不起作用。我的解決方案是使用sys.stdout.write()來打印顏色更改和重置。它運行良好,幾乎甚至不需要更改我當前的代碼
[這裏](http://pastebin.com/aMbXuTW6)是該方法的粘貼。它是班級的一部分,但你應該能夠弄清楚它在做什麼。 我不太確定Colorama是如何做到這一點的,但我應該看看它。 – THUNDERGROOVE 2013-05-02 01:38:26
將代碼作爲問題的一部分發布,它將使其他人更容易回答您:-)(併爲那些有同樣問題的人獲得答案) – halflings 2013-05-02 01:40:07
添加了一個解決方案,可以解決您的問題: - )閱讀此SO問題有關如何去除非打印字符的更多信息:http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from-a-string-in-python – halflings 2013-05-02 01:46:50