max
, чем значение очередного элемента массива, которое печатает цикл. Вы его не печатайте, а сравнивайте. Если max
меньше очередного элемента, пишите очередной элемент в max
. Как всё переберется, выводите полученный max
. multiprocessing.Rlock
хоть и с большой буквы, но это не класс, а функция:Note that RLock is actually a factory function which returns an instance of multiprocessing.synchronize.RLock initialized with a default context.
from multiprocessing.synchronize import RLock
def main(locker: RLock) -> None:
return locker.
C:/Mydir/myfile.txt
). random.choice(os.listdir('photo'))
предполагает, что папка photo находится в папке, которая в данный момент для вашего скрипта основная. Но это может быть неожиданно не папка проекта. from pathlib import Path
project_dir = Path('C:\\Projects\\telebot_test_functions\\')
photo_dir = project_dir / 'photo'
photo = open(random.choice([*photo_dir.iterdir()]), 'rb')
.add_field
в качестве аргумента value, и это и передавать - очевидно, без скобок. Что делать, если отключил службу, отвечающую за пинкод в виндоусе, а пинкод есть?
list
, dict
и т.п.) в качестве имен своих переменных. Если очень хочется, пиши my_list
. {
"users": [
{"user": "name_test"},
{"user": "name_test1"},
{"user": "name_test2"}
]
}
import json
args = "name_test2"
with open('config.json', 'rb') as fp:
jsondata = json.load(fp)
jsondata['users'] = [item for item in jsondata['users'] if item['user'] != args]
print(jsondata)
import asyncio
from pyrogram import Client
import shelve
import random
from secret.config import Config
TEXTS = ['Круто!', 'Nice!!!!', 'Oh my god']
config = Config()
api_id = config.api_id
api_hash = config.api_hash
phone_number = config.phone
PUBLIC = config.title
chat_id = config.chat_id
name = config.name
processed_messages = shelve.open('processed_messages.db', writeback=True)
app = Client(name, api_id, api_hash, phone_number=phone_number)
async def main():
async with app:
public = await app.get_chat(PUBLIC)
async for msg in app.get_chat_history(chat_id, limit=100):
if msg.from_user: # если у нас есть параметр from_user
any_sender_id = msg.from_user.id # присваеваем ID юзера
else: # иначе
any_sender_id = msg.sender_chat.id # присваеваем ID канала или чата
if any_sender_id == public.id: # проверяем что это нужный паблик
if str(msg.id) in processed_messages:
print(f'Пропускаем уже обработанное message_id={msg.id}')
else:
processed_messages.update({str(msg.id): True})
print(f'Обработка message_id={msg.id}')
text = random.choice(TEXTS)
print(text)
result = await app.send_message(chat_id, text, reply_to_message_id=msg.id)
processed_messages.update({str(result.id): True})
await asyncio.sleep(1) # пауза, чтоб не банили за флуд
app.run(main())