await user.send('Привет! Мой префикс = m!')
мне нужно поместить содержимое cFile в переменную
import time
limit = 10000000
i = 0
ts = time.time()
while (1<10):
i+=1
if i > limit:
break
pass
print(f"while (1<10): {time.time() - ts}")
ts = time.time()
i = 0
while True:
i+=1
if i > limit:
break
pass
print(f"while True: {time.time() - ts}")
while (1<10): 1.3074848651885986
while True: 1.0500555038452148
import os.path
from aiofile import async_open
import time
async def GetCode(timeout=120, file_path="temp_code.txt"):
"""
Эта функция ищет код в temp_code.txt.
Его, естессно, нужно будет туда записать, когда он будет получен
В производственной среде так делать не стоит. Используйте базу данных
:param timeout: время ожидания
:param file_path: путь к файлу с кодом
:return: code или None по истечению timeout
"""
while timeout > int(time.time()):
# ищем файл
if os.path.exists(file_path):
# читаем файл
async with async_open(file_path, 'r', encoding="utf-8") as f:
#code = содержимое файла. strip - удаляет пробелы (мало ли)
code = await f.read().strip()
# Если код есть - удаляем файл и возвращаем код
if code is not None:
os.remove(file_path)
return code
# спим 1 сек если код не нашли
await asyncio.sleep(1)
return None
client.start(phone, code_callback=GetCode)
from PIL import Image, ImageDraw
im = Image.open("C:\\путь к файлу\\файл.jpg")
width = im.size[0]
height = im.size[1]
pix = im.load()
draw = ImageDraw.Draw(im)
for i in range(width):
for j in range(height):
r = 0 # убираем красный
g = pix[i, j][1]
b = pix[i, j][2]
draw.point((i, j), (r, g, b))
im.show()
Поток с асинхронной функцией запускается при старте сервера и не прекращается до его остановки. Он получает данные из redis, которые туда кладет основной поток. (некоторое подобие тасков celery, но celery тоже не особо дружит с asyncio, поэтому реализовал так, дабы не плодить кучу воркеров и не отказываться от прелестей asyncio). Он так же использует модули django, по этому не вынесен за пределы web приложения. Если такой подход является плохим, как бы вы реализовали такую задачу?