我使用Python在内部调用cscope
。为此,我使用subprocess.call
。
问题在于没有shell=True
以下代码按预期工作:
import subprocess
subprocess.call("cscope -d -L0'temp'", shell=True)
但以下情况并非如此,它返回0
状态代码,但没有输出
import subprocess
subprocess.call(["cscope", "-d", "-L0'temp'"])
关于上述原因发生的任何想法?
答案 0 :(得分:3)
不要引用这些参数,当shell = False时,args会直接传递给进程而不使用shell:
subprocess.call(["cscope", "-d", "-L0","temp"])
你应该使用check_call:
from subprocess import check_call
check_call(["cscope", "-d", "-L0", "temp"])