【问题标题】:I want to do a loop that posts a tweet every 24 hours我想做一个循环,每 24 小时发布一条推文
【发布时间】:2021-07-24 20:18:14
【问题描述】:

我的问题是如何自动化它以每 24 小时运行一次此代码,此代码只不过是我希望每 24 小时向其发送 Web 链接的 Twitter 机器人,它只发送一个并停止运行,但我希望它运行,当它给 24 小时时,它会发送另一张照片。

import tweepy
import logging
from source import sourceimg
from config import create_api
import time
import glob
import random
import os

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)

def postKasumi(api):
    logger.info("Generating image...")
    randomNum = random.randint(0,len(sourceimg)-1)
    logger.info("Uploading image...")
    api.update_status("#Anime " + sourceimg.get(randomNum))
    logger.info("Done!")

def main():
    api = create_api()
    postKasumi(api)
    logger.info("Waiting...")


if __name__ == "__main__":
    main()

【问题讨论】:

  • 设置一个 cronjob

标签: python twitter while-loop bots


【解决方案1】:

好吧,您可以使用带有 python 内置 sleep 命令的 while 循环:

import time

...

def main():
    while True:
        api = create_api()
        postKasumi(api)
        logger.info("Waiting...")
        time.sleep(24 * 60 * 60) #Sleep for 24 hours

但是,这有一些缺点。一方面,你必须让这个脚本永远在你的计算机上运行。另一方面,您的计算机可能会在一段时间不活动后默认进入睡眠状态。当它发生时,您的脚本将停止运行。如果您使用的是 macOS,则可以使用 终端命令caffeinate

最好每 24 小时运行一次脚本。一个很好的方法是使用cron(我相信它只在mac和linux上可用)。

例如,将此行添加到您的 crontab 文件将每 24 小时运行一次脚本。

1 0 * * * python replace/this/with/path/to/your/script/script.py

您可以使用终端命令 crontab -e 编辑您的 crontab。

【讨论】:

    猜你喜欢
    • 2011-08-28
    • 2011-06-13
    • 2020-09-10
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2010-10-13
    • 2020-08-19
    相关资源
    最近更新 更多