Python 2 ではstr.format()
、端末に出力する一連のテキスト列を揃えるために使用しています。基本的に、これは表ですが、罫線などは印刷していません。列に並べられた単なるテキストの行です。
- 色いじりなしで、すべてが期待どおりに印刷されます。
- 行全体 (つまり、1 つの
print
ステートメント) を ANSI カラー コードでラップすると、すべてが期待どおりに印刷されます。 - ただし、行内の各列を異なる色にしようとすると、配置が崩れます。技術的には、配置は維持されます。希望どおりに印刷されないのは、塗りつぶし文字(スペース) です。実際、塗りつぶし文字は完全に削除されているように見えます。
と の両方colorama
で同じ問題を確認しましたxtermcolor
。結果は同じでした。したがって、この問題はstr.format()
、文字列の途中で ANSI エスケープ シーケンスをうまく処理できないことに関係していると確信しています。
しかし、私はそれについて何をすべきかわかりません!:( この問題の回避策があるかどうかを知りたいです。
色と配置は読みやすさを改善するための強力なツールであり、読みやすさはソフトウェアの使いやすさの重要な部分です。テキストの各列を手動で揃えることなくこれを達成できれば、私にとって大きな意味があります。
少し助けて?☺