【问题标题】:How to create a zip file on SFTP server from files on the server using pysftp如何使用 pysftp 从服务器上的文件在 SFTP 服务器上创建 zip 文件
【发布时间】:2021-05-27 07:39:33
【问题描述】:

我想编写一个 Python 脚本来连接远程 SFTP 服务器并在远程服务器中创建一个 ZIP 文件,该文件由远程服务器本身中存在的特定文件组成。我已经编写了以下脚本,为此我使用 pysftp,

with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword, cnopts=cnopts) as sftp:
    print("Connection succesfully stablished ... ")
    files = ['user/1.csv','user/2.csv','user/test.csv', 'user/test1.csv']
    with zipfile.ZipFile('zipfile.zip', 'w') as zipMe:
        for file in files:
            zipMe.write(file, file.split('/')[-1], compress_type=zipfile.ZIP_DEFLATED)

但不是在远程服务器中创建 ZIP 文件,而是在本地创建 ZIP 文件。谁能帮我解决这个问题?

【问题讨论】:

    标签: python python-3.x zip sftp pysftp


    【解决方案1】:

    确实,您的代码将 local 文件压缩到 local ZIP 存档。请注意您的代码如何从不使用 sftp 变量。

    如果您想使用 local Python 脚本将 remote 文件压缩到 remote ZIP 存档,则必须下载远程文件,zip它们在本地并上传 ZIP 存档。

    您无需实际将远程文件或 ZIP 文件物理存储到本地系统即可完成所有“内存中”操作。但是您仍然需要进行所有转移。所以效率会非常低。


    您最好使用您的 SFTP(或实际上是 SSH)连接在远程服务器上执行 zip 命令。

    相关问题:How to decode Zip file from sftp file using paramiko python

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 2014-07-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多