4

小さな子供のために算数の問題を含むファイルを書きたいと思っています。プラスとマイナスの区別がつきやすいように、塗り分けをしたいと思います。これは私にとって非常にうまくいきました。残念ながら、端末のみです。

import random as rd
from termcolor import colored

N = 10
MAX = 100
f = open("math.txt", "w")


def get_random_str():

    a = rd.randint(1, MAX)
    b = rd.randint(1, MAX)

    if a < MAX*0.4:
        string = "%3d "%a + str(colored('+', 'blue')) + " %d = \n"%(b)

    else:
        if a>b:
            string = "%3d "%a + str(colored('-', 'red')) + " %d = \n"%(b)

        else:
            string = "%3d "%a + str(colored('-', 'red')) + " %d = \n"%(b)

    return string
#-------------------------------------------------------------------------

for i in range(1,N):
    print i, get_random_str()

出力をファイルに書き込もうとすると、もちろん、赤の「-」と青の「+」ではなく、「[34m + [0m」などのカラーコードが表示されます。

このタスクを解決する方法はありますか?

4

4 に答える 4

3

これには、ファイルを表示するために使用しているプログラムが ANSI エスケープ シーケンスをサポートしている必要があります。これは、たとえば、GNU/Linux で可能less -Rです。

于 2013-07-21T12:24:48.063 に答える
0

プレーン テキスト ファイルではなく、RTF ファイルに書き込みたい場合があります。このようにして、テキストを書き、フルカラーとハイライトでワープロで開くことができます

または、HTML ファイルに書き込むだけです。

于 2013-07-21T18:26:09.077 に答える