You must have the manage_messages permission to delete messages even if they are your own (unless you are a user account). The read_message_history permission is also needed to retrieve message history.
sheet2["B7"] = sheet['C' + str(i)].value
sheet2["D7"] = sheet['E' + str(i)].value
sheet2["E7"] = sheet['N' + str(i)].value
sheet2["F7"] = sheet['F' + str(i)].value
sheet2["G7"] = sheet['J' + str(i)].value
cols1 = ('B', 'D', 'E', 'F', 'G')
cols2 = ('C', 'E', 'N', 'F', 'J')
row1 = 7 # какие строки тебе нужны, я так и не понял, ну да сам разберёшься
row2 = row1 + 18 # то же самое тут
#делаем цикл по парам - элемент из cols1 и элемент из cols2
for col1, col2 in zip( cols1, cols2):
# запись вида f'{x}' подставит в строку значение переменной x
sheet2[f'{col1}{row1}'] = sheet[f'{col2}{row2}'].value
class MyCog (commands.Cog):
def __init__(self, bot):
self.enter_times = {}
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if before.channel is None and after.channel is not None:
#событие входа в чат - кладем время входа в словарь
self.enter_times[member.id] = time.time() #число секунд от начала эпохи Unix
elif before.channel is not None and after.channel is None:
#событие выхода из чата - вытаскиваем время входа и удаляем его из словаря
enter = self.enter_times.pop(member.id, None)
if enter is not None: # мало ли, бота перезапустили пока кто-то сидел в войсчате
delta = time.time() - enter # число секунд с момента входа
print(f'member {member.id}: {delta:.1f} seconds')
salaries = [] # список будет содержать пары значений ИНН-зарплата
# открываем файл так, чтобы он потом был закрыт, что бы ни случилось
with open('salary.txt', 'rt', encoding='utf-8') as src:
for line in src: # перебираем строки в файле
try: # на случай, если строка неправильная
row = line.split(',') #делим строку на части
INN, salary = row[0], row[1]
# ИНН оставим строкой
salary = int(salary) # зарплата - целое число?
# если всё прошло как надо, добавляем пару в список
# обратите внимание на двойные скобки
salaries.append( (INN, salary) )
except: # если была ошибка, ругаемся на строку
print('Некорректная строка пропущена:', repr(line))
# pass # ну или просто пишем pass чтобы ничего не делать
# теперь все данные у нас в списке
# могли бы и не делать список, а сканировать сразу файл,
# если нужен только максимум, а файл большой
# находим максимум стандартной функцией
# функция вернёт элемент списка, т.е. пару значение ИНН-зарплата
# key показывает, по какому критерию сравнивать элементы списка
# в нашем случае элемент №1 (с нуля), т.е. зарплата
max_INN, max_salary = max(salaries, key = (lambda row: row[1]))
print(max_INN)
face = cv2.cvtColor(face, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.5.1) /tmp/pip-req-build-ms668fyv/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
import csv
#тут храним таблицу соответствий
table = {}
#удостоверься, что кодировка файла корректная
with open(r'C:/Users/varva/Desktop/translit.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile, delimiter=',')
for row in reader:
#убираем пробелы из значений. Можно убрать .strip(), если они значимы
table[row['Кириллица'].strip()] = row['Латиница'].strip()
word = input()
#по умолчанию неизвестные символы оставляем как есть. см. метод dict.get()
result = ''.join( table.get(ch, ch) for ch in word )
print(result)
Кириллица,Латиница
Ф,F
Д,D
В,V
Ы,Y
А,A