Не получается добавить символ "*" в начале содержимого определенных ячеек

Dauren007

Новичок
Пользователь
Авг 14, 2020
5
0
1
Добрый день! С Питоном столкнулся в первый раз. Задача следующая:
Есть скрипт, который выгружает отчет с Заббикс в эксель. Отчет выглядит следующим образом:
1597394172593.png
Стоит задача: добавить символ звездочка "*" в начале названии определенных объектов. К примеру, *Алаш 34/1 (рынок «Биг Шанхай»)/Биг Шанхай пролет 2. Список объектов статичный и меняться не будет. Если в отчете около 800 объектов, то, примерно на 40 из них надо добавить звездочки.

Так как опыта с Питоном у меня нуль, прошу помочь с правильным подходом к решению данной задачи. Пробовал разные варианты из поиска в гугл, не заработало.
Прилагаю кусок кода, где ведется запись в файл эксель:

Python:
    book_consol = copy(open_workbook('consol_report.xls', formatting_info=True))
    sheet_consol = book_consol.get_sheet(0)
    sheet_consol._cell_overwrite_ok = True



    setOutCell(sheet_consol, 4, 1, week1_name)
    setOutCell(sheet_consol, 5, 1, week2_name)
    setOutCell(sheet_consol, 6, 1, week3_name)
    setOutCell(sheet_consol, 7, 1, week4_name)
    setOutCell(sheet_consol, 8, 1, full_period_name)
    for gr in grs2:
        #Получение номера группы из имени
        #nubmer_obj = re.findall("\d\d\d", gr["name"])[0]

        #Количество дней
        #print("Количество дней = ", len(d_lu_group_reports[counter]))
        w = [0]*4
        for d in gr["days"]:
            if d<=6:
                w[0]=w[0]+1
            elif d<=13:
                w[1]=w[1]+1
            elif d<=20:
                w[2]=w[2]+1
            else:
                w[3]=w[3]+1

        sheet_consol.write(row_number_col, 0, row_number)
        sheet_consol.write(row_number_col, 1, 'ОН')
        #sheet_consol.write(row_number_col, 2, nubmer_obj)
        sheet_consol.write(row_number_col, 3, gr["name"][26:])
        sheet_consol.write(row_number_col, 4, w[0])
        sheet_consol.write(row_number_col, 5, w[1])
        sheet_consol.write(row_number_col, 6, w[2])
        sheet_consol.write(row_number_col, 7, w[3])
        sheet_consol.write(row_number_col, 8, xlwt.Formula(f'E{row_number_col + 1} + F{row_number_col + 1} + G{row_number_col + 1} + H{row_number_col + 1}'))
        counter += 1
        row_number += 1
        row_number_col += 1

    filename =  year + '{:02}'.format(month) + '_consol_report_on.xls'
    book_consol.save(filename)

    print("Сохранение данных завершено")
    logging.info("Сохранение данных завершено")

Дополнительная информация:
  1. sheet_consol.write(row_number_col, 3, gr["name"][26:]) - тут как раз таки пишутся названия объектов, в начале которых надо ставить звездочки
  2. Операционная система: CentOS Linux release 7.6.1810 (Core)
  3. Версия Python: 2.7.5
  4. Вывод команды pip list:
    Package Version
    ------------- ---------
    certifi 2019.6.16
    chardet 3.0.4
    idna 2.8
    pip 18.1
    py-postgresql 1.2.1
    py-zabbix 1.1.5
    pyzabbix 0.7.5
    requests 2.22.0
    setuptools 39.2.0
    urllib3 1.25.3
    xlrd 1.2.0
    XlsxWriter 1.3.3
    xlutils 2.0.0
    xlwt 1.3.0
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Можете показать на примере? Боюсь ошибиться в синтаксисе.
Python:
if 'Алаш' in gr["name"][26:]:
    sheet_consol.write(row_number_col, 3, '*' + gr["name"][26:])
else:
    sheet_consol.write(row_number_col, 3, gr["name"][26:])
 
  • Мне нравится
Реакции: Dauren007

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Попробуйте просто добавить звездочку к строке:
Python:
sheet_consol.write(row_number_col, 3, '*' + gr["name"][26:])
 

Dauren007

Новичок
Пользователь
Авг 14, 2020
5
0
1
Попробуйте просто добавить звездочку к строке:
Python:
sheet_consol.write(row_number_col, 3, '*' + gr["name"][26:])
Видите, звездочка должна быть не везде, только перед определенными объектами. К примеру:
1597395927381.png
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Видите, звездочка должна быть не везде, только перед определенными объектами. К примеру:
Посмотреть вложение 509
Добавьте условие:
Python:
if определенный_объект:
    добавляем звездочку
else:
    без звездочки
Вы же не указали критерии объектов.
 

Dauren007

Новичок
Пользователь
Авг 14, 2020
5
0
1
Добавьте условие:
Python:
if определенный_объект:
    добавляем звездочку
else:
    без звездочки
Вы же не указали критерии объектов.
Можете показать на примере? Боюсь ошибиться в синтаксисе.
 

Dauren007

Новичок
Пользователь
Авг 14, 2020
5
0
1
Python:
if 'Алаш' in gr["name"][26:]:
    sheet_consol.write(row_number_col, 3, '*' + gr["name"][26:])
else:
    sheet_consol.write(row_number_col, 3, gr["name"][26:])
Спасибо большое!
 

Dauren007

Новичок
Пользователь
Авг 14, 2020
5
0
1
Задача решена. Как ее перевести в статус "Решена"?
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Задача решена. Как ее перевести в статус "Решена"?
Выбрать лучший ответ нажав на иконку с кубком.
 

Форум IT Специалистов