等待上一个函数在Python中完成

时间:2019-09-10 07:44:17

标签: python function wait scp

python中是否有任何解决方案可以让函数在上一个函数完成后执行?

这是我现在正在使用的想法之一。但是,当文件更大并且程序需要更多时间时,并不能解决问题。

def copy_to_jumphost(self):
        try:
            if self.connect():
                stdin, stdout, stderr = self.client.exec_command('sshpass -p %s scp -r %s@%s:%s/' % (self.password,self.username,self.hostname,self.log_path) + self.lista[self.file_number].rstrip() + ' ' + '/home/%s/' % (self.username) + self.lista[self.file_number].rstrip())   
        except (AttributeError, TypeError) as e:
            print("Error occurred:", e)
try:
    if self.connect():
        if self.copy_to_jumphost():
            ftp_client = self.client.open_sftp()
            ftp_client.get(filepath, self.localpath)
            print("Success! \nFile coppied to %s" %(self.localpath))
        else: 
            time.sleep(5)
            ftp_client = self.client.open_sftp()
            ftp_client.get(filepath, self.localpath)
            print("Success but needed some time! \nFile coppied to %s" %(self.localpath))
except (AttributeError, TypeError) as e:
    print("Error occurred:", e)

对我来说,最好的情况是,在else语句中有解决方案等待完成copy_to_jumphost()函数,因为如果我需要复制较大的文件,time.sleep(5)将会失败。

0 个答案:

没有答案