如何在Python中集成“at”命令

2024-06-17 11:29:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将“echo/bin/meteo | at23:00 today”集成到python脚本中。在

在python脚本中,“今天23:00”命令应该调用bash脚本/bin/meteo

我确实安装了plumbum并将其集成到python脚本中。在

from plumbum.cmd import echo, grep

不幸的是,我不知道如何从这里开始。在

我试着:

^{pr2}$

但是/bin/meteo中的灯是随机开关的(不是应该闪烁的)

他们从06:36到06:37,不止5次。在

/箱/米:

^{3}$

Tags: fromimport命令echo脚本cmdbashtoday
2条回答

subprocess.Popen将运行命令:

import subprocess
cmd = "echo /bin/meteo | at 23:00 today "
subprocess.Popen(cmd, shell=True)

在新进程中执行子程序。在Unix上,类使用执行操作系统()—执行子程序的类似行为。在Windows上,该类使用Windows CreateProcess()函数。Popen的参数如下。在

参数应该是一系列程序参数,或者是一个字符串。默认情况下,如果args是序列,则要执行的程序是args中的第一项。如果args是一个字符串,则解释依赖于平台,如下所述。有关与默认行为的其他区别,请参阅shell和executable参数。除非另有说明,建议将args作为一个序列传递。

不完全清楚您想要什么,但您可以运行任何命令,如:

^{pr2}$

或者使用sudo:

import subprocess
cmd = "sudo which python"
my_pass="xxxx"
subprocess.call('echo {} | sudo -S {}'.format(my_pass,cmd), shell=True)
In [29]: subprocess.call('echo {} | sudo -S {}'.format(my_pass,cmd), shell=True)
/usr/local/bin/python
Out[29]: 0

使用Python 3.4,可以很容易地调用命令并批量交换输入/输出:

subprocess.check_output(["at", "23:00", "today"], input="/bin/meteo")

因此,在这种情况下,shell=True不需要,因为我们只需要用参数调用at命令,并在输入时给它一个脚本。在

对于较旧版本的python,需要将其重写为:

^{pr2}$

对于plumbum模块,您可以使用:

from plumbum.cmd import at, echo
(echo["/bin/meteo"] | at["23:30", "today"])()

但我不认为这是非常有用的。在

相关问题 更多 >