У меня есть скрипт на python, в котором функция выводит несколько строк из файла ошибок.
Ошибка ниже, когда я запускаю скрипт через jenkins.
release/bin/eat2/eat.py", line 553, in _runtest
print('ERROR:' + msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u0447' in position 315: ordinal not in range(128)
Кодировка по умолчанию для python: UTF-8
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
Я пытался экспортировать переменную PYTHONIOENCODING=UTF-8
перед выполнением сценария.
Добавлена строка ниже в начале скрипта-
# coding: utf8
def _check_gpderrors(gdplogfile):
LOGERROR_REGEX = re.compile("^\d+-\d+-\d+ \d+:\d+:\d+ Error:")
errors = []
import codecs
f = codecs.open(logfile, 'r', encoding='utf-8')
for line in f:
if re.match(LOGERROR_REGEX, line):
errors.append(line.strip())
f.close()
return errors
errors = {}
errors = _check_gdperrors(log_file)
for error in errors:
msg = project_info + ': execution failed with error: ' + error + '\n'
print('ERROR:' + msg)
logs.append(msg)
script_error = True