python - 如何将交互式 Python 脚本作为 cron 作业运行?

标签 python linux macos cron

我有一个 Python 脚本,例如 test.py,它在每次执行时都会与用户交互。

测试.py

#!/usr/bin/env python3

def foo():
    a = input()
    print("Hello, {}".format(a))

if __name__ == '__main__':
    foo()

我想每 5 分钟运行一次这个脚本。所以,我尝试将它添加到我的 crontab 但似乎这不起作用,因为没有提示我输入输入。
我已经测试了我的 crontab,它工作正常。

我应该为此任务使用诸如 schedule 之类的库吗?
在这种情况下,理想的处理方式是什么?
注意:我想要一个适用于 MacOSX 和 GNU/Linux 的跨平台解决方案。

最佳答案

您可以尝试 python 模块 pexpect (http://pexpect.sourceforge.net/doc/)——用法类似于:

import pexpect
child = pexpect.spawn(script/python file etc...)
child.expect('Here goes the prompt you would expect')
child.sendline('What you want to send to it')

关于python - 如何将交互式 Python 脚本作为 cron 作业运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879590/

相关文章:

python - pycharm "Note that you cannot install any Python packages into Docker-based project interpreters."

python - 如何修复 AttributeError : 'module' object has no attribute 'Client' when running python in Google Cloud Interactive Shell

linux - eglibc:以毫秒为单位获得正常运行时间

macos - 如何让 docker 在 OS X 上作为服务启动?

mysql - 山狮 : Can't connect to local MySQL server through socket '/tmp/mysql.sock'

java - 获取局域网内所有IP和MAC地址

python - 轮询 Web 服务器的最简单方法

python - 阻止 pyplot.contour 沿不连续点绘制轮廓

linux - 将 cronjob 添加到 crontab 而不删除现有的 cronjobs

css - Nginx 不会在树莓派的 Asp.net 核心上加载 css