相关疑难解决方法(0)

为什么这个命令适用于os.system()而不是subprocess.Popen()?

我想从q中删除一些作业.删除作业的命令是qdel JOBid.

最初,我尝试使用子进程模块,但是我收到了一个错误:#!/ usr/bin/env python

 import sys, os, subprocess as sp

 lo = sys.argv[1]
 hi = sys.argv[2]

 lo = int(lo)
 hi = int(hi)


for i in range(lo,hi):
    print "i is %d"%i
    p=sp.Popen(['qdel %d'%i],stdout=sp.PIPE)
    #os.system('qdel %d'%i)
Run Code Online (Sandbox Code Playgroud)

所以这没用.我得到的错误是

Traceback (most recent call last):
File "del.py", line 14, in <module>
p=sp.Popen(['qdel %d'%i],stdout=sp.PIPE)
File "/usr/lib64/python2.6/subprocess.py", line 639, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我注释掉了子流程并使用了os,它立即起作用.我想我不完全理解子进程模块

#!/usr/bin/env python

import sys, …
Run Code Online (Sandbox Code Playgroud)

python subprocess

9
推荐指数
1
解决办法
5181
查看次数

标签 统计

python ×1

subprocess ×1