如何在给定时间运行子进程python
Posted
技术标签:
【中文标题】如何在给定时间运行子进程python【英文标题】:how to run subprocess at a given time python 【发布时间】:2018-09-05 14:56:50 【问题描述】:我尝试下面的代码来运行我的subprocess after 1 minute
process = Popen(['python3','helloworld.py','|','at -m now +1 minute'], stdout=PIPE, stderr=PIPE)
我从终端运行以上线路..它立即执行但不是在 1 分钟后。如何将特定时间设置为 RUN.. 如何在给定时间 python 运行子进程。 请帮帮我。
【问题讨论】:
与***.com/questions/15088037/…重复 虽然我的一部分同意@Benjamin,这是上述问题的重复,但我仍然认为上述方法有些独特,因为它是 Python 程序(子进程)的一部分将在特定时间运行。尽管相似,但并不完全相同。 请注意,给出的bash
命令不会延迟子进程的执行,只会延迟它的输出。要真正延迟执行,at
命令必须是管道中的第一个命令。不过,我想说在 Python 中有更好的方法。
【参考方案1】:
您不能在命令中使用管道,除非您使用 Popen 设置 shell=True。
process = Popen('"python3 helloworld.py" | at -m now +1 minute', stdout=PIPE, stderr=PIPE, shell=True)
【讨论】:
当我打印 stderr 时,它显示为“命令将在 2018 年 3 月 27 日星期二 10:19:00 使用 /bin/sh\njob 26 执行(1 分钟后的时间)”但它仍然立即执行...... 遇到同样的问题...立即执行...不是在 1 分钟后以上是关于如何在给定时间运行子进程python的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用子进程的情况下从 python 自动化脚本中运行 python 'sdist' 命令?