Как постоянно обновлять переменные времени в скрипте Python?

Ниже у меня есть оператор 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)

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

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)

погуглите эту библиотеку python: расписание импорта

jose_bacoy 20.06.2019 19:37

Опубликуйте полный проверяемый пример: stackoverflow.com/help/минимально-воспроизводимый-пример. Другими словами, как рассчитывается result.tm_*?

geckos 20.06.2019 19:46
«Я хочу выполнить [код] ровно в 11:45» — обычно для этого вы используете cron или любой другой тип диспетчер задач, а не оператор if.
deceze 20.06.2019 19:48

Хорошо. Я импортировал Расписание и пытался его настроить, но ничего не происходит. Я включил код в редактирование.

Laurel Link 20.06.2019 19:53
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
882
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Другие вопросы по теме