@Bergis

Как реализовать сразу несколько процессов в 1 программе?

Написал код , но хочу , чтобы программа принимала бесконечное кол-во новых api и работала с ними. Как это можно сделать ? Данная программа работает лишь с 1 новым api.
import vk
import pyowm
from datetime import datetime, timedelta
import vk_api
from time import sleep 
import os
import sys
import random


session1 = vk.AuthSession(access_token='')
vk_api = vk.API(session1, v=5.62)
now1 = str(datetime.strftime(datetime.now(), "%H:%M"))
messages_text  = ['Токен', 'токен','кpecт']

def stat(tok):
	owm = pyowm.OWM('6d00d1d4e704068d70191bad2673e0cc', language = "ru")
	observation = owm.weather_at_place("Москва")
	session2 = vk.AuthSession(access_token=tok)
	vk_api1 = vk.API(session2, v=5.62)
	now12 = str(datetime.strftime(datetime.now(), "%H:%M"))
	while True:
		w = observation.get_weather()
		temp = w.get_temperature('celsius')["temp"]
		vk_api1.account.setOnline()
		now = str(datetime.strftime(datetime.now(), "%H:%M"))
		if now!=now12:
			vk_api1.status.set(text= "Время в Москве : " + now+ ", " + " Температура в Москве : " + str(temp) + " градусов" + ", " + " погода : " + w.get_detailed_status())
			now1=now
	
		sleep(30)

while True:
	messages = vk_api.messages.getConversations(offset = 0, count = 20, filter = "unread") 
	if messages["count"] >= 1: 		                                           
		id = messages["items"][0]["last_message"]["from_id"] 
		body = messages["items"][0]["last_message"]["text"] 
		message = body.lower()
		if message in list(messages_text):
			if message  == "Токен" or message == "токен" or message == "тoкeн": 
				a = random.randint(1, 999999999)
				vk_api.messages.send(peer_id = id, message= "Кидай свой токен :", random_id = a)
				while True:
					messages = vk_api.messages.getConversations(offset = 0, count = 20, filter = "unread")
					if messages["count"] >= 1:  
						id1 = messages["items"][0]["last_message"]["from_id"] 
						if id == id1:
							body = messages["items"][0]["last_message"]["text"] 
							message = body.lower()
							tok = str(message)
							print(tok)
							stat(tok) 
						else:		
   							sleep(15)

		else:		
   			sleep(15)
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
@l7_7l
В таком случае тебе нужно создать новый поток.

Для работы с потоками из модуля threadingимпортируем класс Thread. В начале кода пишем:

from threading import Thread
После этого нам будет доступна функция Thread() — с ней легко создавать потоки. Синтаксис такой:

variable = Thread(target=function_name, args=(arg1, arg2,))


Источник: https://geekbrains.ru/posts/python_threading_part1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы