在Python中创build一个Linux作业(调度)

我正在尝试使用python脚本在Linux中安排一些作业。 目前,我的脚本看起来像这样:

import subprocess command = 'python foo.py %s %s | at %s' % (arg1, arg2, starttime) subprocess.Popen([command,], shell=True) 

但这似乎并不奏效,我希望有人能够就我应该做的事情提供build议。

你的问题是使用at命令,它会得到一个字符串,所以你想要的更多

 command = 'echo python foo.py %s %s | at %s' % (arg1, arg2, starttime) 

或者以更为pythonic的方式

 sched_cmd = ['at', starttime] command = 'python foo.py %s %s' % (arg1, arg2) p = subprocess.Popen(sched_cmd, stdin=subprocess.PIPE) p.communicate(command) 

如果你传入shell=TruePopen()需要一个字符串:

 import subprocess command = 'python foo.py %s %s | at %s' % (arg1, arg2, starttime) subprocess.Popen(command, shell=True) 

另外,你是什么意思的“不工作”? 这对我来说可以:

 >>> import subprocess >>> subprocess.Popen('echo "asd" | rev', shell=True).communicate() dsa (None, None) 

还有你的代码:

 >>> import subprocess >>> subprocess.Popen(['echo "asd" | rev',], shell=True).communicate() dsa (None, None)