Ниже у меня есть оператор 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)
Опубликуйте полный проверяемый пример: stackoverflow.com/help/минимально-воспроизводимый-пример. Другими словами, как рассчитывается result.tm_*?
if.
Хорошо. Я импортировал Расписание и пытался его настроить, но ничего не происходит. Я включил код в редактирование.






Пересчитать текущее время непосредственно перед проверкой:
current = datetime.now()
if current.hour == 11 and current.minute == 45:
# annoy Joe Rogan
Однако, как отмечали другие, было бы лучше использовать специально созданную систему планирования задач, такую как cron.
погуглите эту библиотеку python: расписание импорта