python paramiko模块错误与回调

时间:2014-03-28 09:37:06

标签: python callback paramiko

我正在尝试使用paramiko模块复制本地网络中的(大)文件,并获取输出以显示GtkProgressBar。 我的代码的一部分是:

    ...
        NetworkCopy.pbar.set_text("Copy of the file in the Pi...")
        while gtk.events_pending():            # refresh the progress bar
              gtk.main_iteration()   

        self.connection(transferred, toBeTransferred)

  def connection(self, transferred, toBeTransferred):

        sftp = self.sftp
        fichier_pc = self.fichier_pc
        chemin_pi = self.chemin_pi             # var names are in french !
        fichier = self.fichier
        transferred = self.transferred
        toBeTransferred = self.toBeTransferred
        print "Transferred: {0}\tStill to send: {1}".format(transferred, toBeTransferred)
        sftp.put(fichier_pc, chemin_pi + fichier, callback=self.connection)

在终端,我可以看到

Transferred: 0  Still to send: 3762398252

一段时间,但10秒后我有这个错误:

  File "network_copier.py", line 158, in connection
    sftp.put(fichier_pc, chemin_pi + fichier, callback=self.connection)
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 615, in put
    return self.putfo(fl, remotepath, os.stat(localpath).st_size, callback, confirm)
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 577, in putfo
    fr.close()
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_file.py", line 67, in close
    self._close(async=False)
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_file.py", line 88, in _close
    self.sftp._request(CMD_CLOSE, self.handle)
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 689, in _request
    return self._read_response(num)
  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 721, in _read_response
    raise SSHException('Server connection dropped: %s' % (str(e),))
paramiko.SSHException: Server connection dropped: 

我有1.12.2版本的paramiko,来自ppa

感谢您的帮助

编辑:解决方案是使用pexpect而不是paramiko。它正在处理大文件。here

0 个答案:

没有答案