Python 2.7 Tkinter通过ssh延迟复制命令(Paramiko)

Python 2.7 Tkinter通过ssh延迟复制命令(Paramiko),python-2.7,tkinter,paramiko,Python 2.7,Tkinter,Paramiko,Tkinter中的此脚本压缩驻留在linux服务器中的文件,然后将压缩后的文件复制到本地计算机中。 为此,Paramiko首先在服务器上执行zip命令,然后调用一个新函数在本地机器上复制文件。 但是,在创建zip时,新文件会获得一个临时名称,并且仅在zip过程结束时才会获得预期名称(示例中为compressed_file.zip)。文件很大,zipè过程需要10秒钟。因此,copy函数返回一个错误“IOError No this file”,因为该文件存在,但仍然具有临时名称 我需要以某种方式添

Tkinter中的此脚本压缩驻留在linux服务器中的文件,然后将压缩后的文件复制到本地计算机中。 为此,Paramiko首先在服务器上执行zip命令,然后调用一个新函数在本地机器上复制文件。 但是,在创建zip时,新文件会获得一个临时名称,并且仅在zip过程结束时才会获得预期名称(示例中为compressed_file.zip)。文件很大,zipè过程需要10秒钟。因此,copy函数返回一个错误“IOError No this file”,因为该文件存在,但仍然具有临时名称

我需要以某种方式添加一个暂停,以使复制功能延迟,并允许第一次完成。 我尝试了之后,没有运气。我可以从调试中看到,copy_zip()正在执行,没有像我所预期的那样暂停10秒

(我删去了理解问题所不需要的所有逻辑)


您在之后不正确地使用了
<必须为code>after
提供对该函数的引用,但您正在调用该函数并将结果传递给after

将您在之后使用的
更改为:

root.after(10000, copy_zip)
如果要将参数传递到
copy_file
,请在
之后将其作为参数包含到

root.after(10000, copy_zip, arg1, arg2, arg3)

对after进行了一些测试,我发现如果使用参数调用函数,它将不起作用。换句话说,我应该调用root.after(10000,copy_-zip)。但是如果我需要向函数传递一些参数(就像我实际需要做的那样),该怎么办?如果我使用after?我不能将任何参数传递给函数。谢谢,我刚读完你的答案,就收到了你答案的通知。只有当我意识到无法将参数传递给函数时,我才能找到有用的答案。
root.after(10000, copy_zip, arg1, arg2, arg3)