Я заинтересован в создании проекта, в котором скрипт python создаст цветной вывод. Структура моего проекта такова, что я хотел бы создать файл settings.json
(обработанный пользователями), который содержит цветовые коды (ANSI).
Вот как выглядит мой файл settings.json
. Обратите внимание, что в профиле bash вы обычно используете один escape-символ для обозначения цветовых кодов, но Python не позволяет мне читать файл только с одним escape-символом. :
{
"column_head_color": {
"group1": "\\033[91m",
"group2": null
}
}
А вот основной модуль:
import json
# import settings
with open('settings.json', encoding='utf-8') as file:
settings = json.load(file)
for column in settings['column_head_color']:
color_setting = settings['column_head_color'][column]
if color_setting is None:
# if setting is null, reset color
settings['column_head_color'][column] = "\033[0m" # reset; if I change the string to "\\033[94m", output shows actual color
else:
# if there is a color code present, should I replace "\\" with "\"?
settings['column_head_color'][column] = settings['column_head_color'][column].replace("\\\\", "\\")
print("{}This is the group1".format(settings['column_head_color']['group1'])) # output shows the color code, but it does not actually format the text
print("{}This is the group2".format(settings['column_head_color']['group2'])) # output here works, because it was hard coded manually
Я попытался заменить два escape-символа одним, и я попытался использовать функцию repr()
, но нет воспользоваться. Я зашел так далеко, что показал вывод, который выглядит примерно так:
>>> python main.py
\033[91mOutput
Для group2
цветовой код работает, потому что я вручную ввел код в сценарий. Но когда я читаю его в похожей строке для group1
из файла JSON, Python интерпретирует это не так. Как мне предложить моей python программе интерпретировать эту строку как цветовой код?