【问题标题】:How to schedule a Python script to run at a certain time?如何安排 Python 脚本在特定时间运行?
【发布时间】:2013-11-27 05:47:17
【问题描述】:

您好,我对编程很陌生,我正在尝试为我的 subreddit 制作一个自动发布机器人。我正在使用 praw,我需要在某些时候运行这个脚本并让它输入和工作

import praw

r = praw.Reddit(user_agent="UA")
r.login("username", "password")
sub = r.get_subreddit("Sub")
sub.submit("Title", text="Post text")

我正在运行 Windows,有人说要使用任务调度程序,但我无法弄清楚。任何帮助都会很棒。谢谢。

【问题讨论】:

  • 如果您使用的是 Linux,请尝试crontab
  • 不幸的是,我正在运行 Windows。
  • 那你就可以使用windows调度器了。如果您希望它在后台运行,请为 run-as 用户选择 SYSTEM
  • 我尝试将上述脚本保存为 .py 文件,然后使用调度程序运行它。它没有用。它应该在我的 subreddit 上发布一个测试线程。
  • 您是否尝试过将程序输入到您的 python 可执行文件的路径中,并将该路径作为第一个命令行参数传递给您的脚本?因此,您的提示符看起来像这样<path_to_python>/python.exe,命令行参数看起来像这样<path_to_your_script>.py

标签: python scheduler bots reddit praw


【解决方案1】:

我建议研究一下通用事件调度程序 sched。它在Python's documentation 中进行了描述,并带有适当的示例以帮助您入门。

示例:

import time
import sched

scheduler = sched.scheduler(time.time, time.sleep)

def reddit():
  <your code>

def scheduler_reddit():

  scheduler.enter(0, 1, reddit, ())
  scheduler.run()
  time.sleep(3600)

for i in range(100):
  scheduler_reddit()

将 3600 更改为所需时间(以秒为单位)。

【讨论】:

  • 谢谢。我调查了一下,似乎有点混乱。我真的不太了解代码,但我真的不想花很长的时间来做一件小事。您介意告诉我要在特定时间安排上述代码需要输入什么吗?
  • 好的...那么我在哪里输入运行时间?在(时间.时间,时间.睡眠)?那是如何工作的……抱歉有这么多问题……哈哈
  • 好的,我看到您更改了代码...我会测试一下...感谢您的帮助朋友!
  • @powersource97 'nohup python filename.py &'
  • @powersource97 可以使用psgrep 获取进程的pid 并杀死它。例如,ps aux | grep filename.py | cut -d' ' -f2 | xargs kill -9
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 2016-11-24
  • 2020-09-21
相关资源
最近更新 更多