python html 设置颜色代码,Python:将ANSI颜色代码转换为HTML

1 个答案:

答案 0 :(得分:1)

import re

COLOR_DICT = {

'31': [(255, 0, 0), (128, 0, 0)],

'32': [(0, 255, 0), (0, 128, 0)],

'33': [(255, 255, 0), (128, 128, 0)],

'34': [(0, 0, 255), (0, 0, 128)],

'35': [(255, 0, 255), (128, 0, 128)],

'36': [(0, 255, 255), (0, 128, 128)],

}

COLOR_REGEX = re.compile(r'\[(?P\d+)(;(?P\d+)(;(?P\d+))?)?m')

BOLD_TEMPLATE = ''

LIGHT_TEMPLATE = ''

def ansi_to_html(text):

text = text.replace('[m', '')

def single_sub(match):

argsdict = match.groupdict()

if argsdict['arg_3'] is None:

if argsdict['arg_2'] is None:

color, bold = argsdict['arg_1'], 0

else:

color, bold = argsdict['arg_1'], int(argsdict['arg_2'])

else:

color, bold = argsdict['arg_2'], int(argsdict['arg_3'])

if bold:

return BOLD_TEMPLATE.format(COLOR_DICT[color][1])

return LIGHT_TEMPLATE.format(COLOR_DICT[color][0])

return COLOR_REGEX.sub(single_sub, text)

print ansi_to_html('[06-10-13 21:28:23] [INFO] [0;31;1mUsage: /kick [reason ...][m')

print ansi_to_html('[06-10-13 21:28:23] [INFO] [31;0mUsage: /kick [reason ...][m')

print ansi_to_html('[06-10-13 21:28:23] [INFO] [31mUsage: /kick [reason ...][m')

[06-10-13 21:28:23] [INFO] Usage: /kick [reason ...]

[06-10-13 21:28:23] [INFO] Usage: /kick [reason ...]

[06-10-13 21:28:23] [INFO] Usage: /kick [reason ...]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值