• Как здесь правильно сделать split?

    drygdryg
    @drygdryg
    Python-разработчик
    Вы пытаетесь сложить строку (str) с целым числом (int):
    y = '%s-%s-%d.node.eu.consul' % (parts[0], parts[1], str(parts[2]) + 6)

    parts — это список, состоящий из строк, поэтому parts[2] будет в любом случае строкой — писать str(parts[2]) здесь избыточно. Если вы хотите увеличить это число, нужно сначала преобразовать его в int. Но в parts[2] будет находиться строка вида "8.node.eu.consul", от которой сначала нужно отделить число.
    Итоговое решение может выглядеть так:
    y = '%s-%s-%d.node.eu.consul' % (parts[0], parts[1], int(parts[2].split('.')[0]) + 6)

    или так (число вынесено в отдельную переменную):
    number = int(parts[2].split('.')[0])
    y = '%s-%s-%d.node.eu.consul' % (parts[0], parts[1], number + 6)


    Совет: используйте метод str.format вместо форматирования в стиле Си:
    number = int(parts[2].split('.')[0])
    y = '{}-{}-{}.node.eu.consul'.format(parts[0], parts[1], number + 6)
    Ответ написан
    1 комментарий