@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)
  • Вопрос задан
  • 131 просмотр
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Delta Волгоград
от 60 000 до 100 000 руб.
от 120 000 до 170 000 руб.
Константа Москва
от 140 000 до 250 000 руб.
25 авг. 2019, в 22:35
1000 руб./за проект
25 авг. 2019, в 22:10
3000 руб./за проект
25 авг. 2019, в 21:50
6000 руб./за проект