Python subprocess.call多次调用的怪异行为

时间:2010-07-07 15:30:16

标签: python subprocess

我正在尝试使用subprocess.call函数调用remote(ssh)命令。

import shlex
from subprocess import call
cmd1='ssh user@example.com mkdir temp'
cmd2='scp test.txt user@example.com:temp'

call(shlex.split(cmd1))
call(shlex.split(cmd2))

当我调用上面的内容时,mkdir似乎没有执行 - 虽然subprocess.call的文档说它在返回之前等待执行。各个ssh调用的延迟大约是0.5秒。它似乎在千兆局域网上运行良好,其中延迟几乎为零。

然而,当调用这样的调用似乎工作正常:

call(shlex.split(cmd1)) &  call(shlex.split(cmd2))

第一种方法有什么问题?

谢谢你, Miliana

2 个答案:

答案 0 :(得分:0)

看起来你没有在第一种方法中寻找调用的结果。

if call(shlex.split(cmd1))!=0:
    call(shlex.split(cmd2))

答案 1 :(得分:0)

你有问题的版本总是对我有用。我认为这是一个网络问题,特别是因为你指出它在千兆局域网中工作。