Python For循环使用pexpect和一个要处理的大量地址列表

Python For循环使用pexpect和一个要处理的大量地址列表,python,for-loop,pexpect,Python,For Loop,Pexpect,我和pexpect一起工作。目标是按顺序连接到文本文件中的地址列表,连接后执行操作,注销并转到下一个地址 我的基本功能运行良好。这是令人讨厌的错误。如果客户没有响应,它就会崩溃。我使用了“try”,但如果出现异常,则会中断for循环,并且不会继续使用下一个地址 尝试每种方法的最佳方式是什么,做一些事情,如果失败了。。。在日志文件中做一个注释,然后继续下一个,直到我们到达列表的末尾。这是我目前的工作: i = open('addresses.txt') addresses = i.readline

我和pexpect一起工作。目标是按顺序连接到文本文件中的地址列表,连接后执行操作,注销并转到下一个地址

我的基本功能运行良好。这是令人讨厌的错误。如果客户没有响应,它就会崩溃。我使用了“try”,但如果出现异常,则会中断for循环,并且不会继续使用下一个地址

尝试每种方法的最佳方式是什么,做一些事情,如果失败了。。。在日志文件中做一个注释,然后继续下一个,直到我们到达列表的末尾。这是我目前的工作:

i = open('addresses.txt')
addresses = i.readlines()
i.close()

for address in addresses:
  c = pexpect.spawn('ssh -o StrictHostKeyChecking=no %s@%s' % (user, address))
  c.logfile = sys.stdout
  c.timeout = 5
  c.expect('something')
  c.sendline('do something')
   etc etc.

收集特定的和预期的错误

errors = []
for address in addresses:
    try:
       c = pexpect.spawn('ssh -o StrictHostKeyChecking=no %s@%s' % (user, address))
       c.logfile = sys.stdout
       c.timeout = 5
       c.expect('something')
       c.sendline('do something')
   except Exception as e:   # replace with the type of exception you expect
       errors.append(dict(address=address, exception=e))
这不应中断for循环,完成后,您可以读取错误

if errors:
    # report them, do something etc
    # the errors are informative, with address and exception objects in the dict

您是如何使用
try
的?请将问题更新为将try放入循环内部,异常不会打断它。要将消息记录到文件中,请查看“这让我走上了正确的轨道”。我正在研究的例子并没有完整地说明问题。谢谢!