无法将 python 中的 zip 从我的本地主机提取到目标文件夹(服务器)

Unable to extract zip in python to destination folder(server) from my local host

我无法将 python 中的 zip 文件从我的本地主机提取到目标文件夹(服务器)。使用 z.extract(name,"/destination/") 提取时,它无法找到目标文件夹,因为它正在尝试在本地而不是服务器上搜索目标文件夹。

    transport = paramiko.Transport((destinationIP))
    transport.connect(username = destinationuserName, password =   destinationPassword)
    sftp = paramiko.SFTPClient.from_transport(transport)

    fh = sftp.open('/destination/xxx.zip', 'rb')
    z = zipfile.ZipFile(fh)
    for name in z.namelist():
        print name
        z.extract(name,"/destination/") 
    fh.close()
    sftp.close()

您似乎希望提取的文件出现在服务器上,即使您是在客户端计算机上提取它们。不幸的是,这是行不通的,因为 zipfile.extract 方法假定它的第二个参数是本地路径。

可以考虑创建一个本地临时目录来提取文件,但随后您必须将每个文件复制回服务器上的所需目标位置。这似乎不是对分布式资源的明智使用,但如果您没有 shell 访问服务器的权限,这可能是您能做的最好的事情。

如果您 可以 shell 访问服务器然后考虑使用 fabricparamiko 之类的东西来执行必要的命令服务器系统。