Как постоянно обновлять временные переменные в скрипте Python? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть оператор if, который я хочу выполнять ровно в 11:45 каждый день.Проблема заключается в том, что когда я запускаю свой скрипт на Python, result.tm_min и result.tm_hour являются статическими и содержат то время, которое было, когда я запустил скрипт в первую очередь.Мне нужно каким-то образом изменить эти значения в режиме реального времени с часами.Поэтому, когда время изменяется с 11:44 на 11:45, result.tm_min также изменяется с 44 на 45, что позволяет выполнить приведенный ниже оператор if.Если бы я мог получить какую-либо помощь в этом, это было бы здорово.

В настоящее время я использую библиотеки времени и даты и времени для этого.

if result.tm_hour == 11:
        if result.tm_min == 45:

            post_number = random.randint(1, 5)
            noun_number = random.randint(1, noun_expand_count)
            verb_number = random.randint(1, verb_expand_count)

            noun_file = open("nouns.txt", "r")
            get_noun_line = noun_file.readlines()
            new_noun = get_noun_line[noun_number].strip()
            noun_file.close()

            verb_file = open("verbs.txt", "r")
            get_verb_line = verb_file.readlines()
            new_verb = get_verb_line[verb_number].strip()
            verb_file.close()

            post_file = open("things_to_do.txt", "r")
            get_post_line = post_file.readlines()
            new_post = get_post_line[post_number].strip()
            post_file.close

            message = "@joerogan Hello Joe, today's top two priorities are to:", new_post, new_verb, new_noun
            print(message)
            #api.update_status(message)

Редактировать: Хорошо, я сделал пипсустановить модуль расписания, попытался переписать какой-то код, но я вообще ничего не получаю.

def post():
post_number = random.randint(1, 5)
noun_number = random.randint(1, noun_expand_count)
verb_number = random.randint(1, verb_expand_count)

noun_file = open("nouns.txt", "r")
get_noun_line = noun_file.readlines()
new_noun = get_noun_line[noun_number].strip()
noun_file.close()

verb_file = open("verbs.txt", "r")
get_verb_line = verb_file.readlines()
new_verb = get_verb_line[verb_number].strip()
verb_file.close()

post_file = open("things_to_do.txt", "r")
get_post_line = post_file.readlines()
new_post = get_post_line[post_number].strip()
post_file.close

message = "@joerogan Hello Joe, today's top two priorities are to:", new_post, new_verb, new_noun
print(message)
#api.update_status(message)
return

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        global noun_expand_count, verb_expand_count
        status = status._json['text']

        schedule.every().minute.do(post)

1 Ответ

1 голос
/ 20 июня 2019

Пересчитайте текущее время непосредственно перед проверкой:

current = datetime.now()
if current.hour == 11 and current.minute == 45:
    # annoy Joe Rogan

Однако, как прокомментировали другие, может быть лучше использовать специально созданную систему планирования задач, такую ​​как cron.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...