如何解决如何使用 pysftp 从服务器上的文件在 SFTP 服务器上创建 zip 文件
我想编写一个 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 文件。任何人都可以帮我解决这个问题吗?
解决方法
实际上,您的代码将本地 文件压缩到本地 ZIP 存档。请注意您的代码如何从不使用 sftp
变量。
如果您想使用本地 Python脚本将远程文件压缩到远程 ZIP存档,您必须下载远程文件,zip它们在本地并上传 ZIP 存档。
您可以在“内存中”完成所有这些操作,而无需将远程文件或 ZIP 文件实际存储到本地系统。但是您仍然需要进行所有转移。所以效率会非常低。
您最好使用 SFTP(实际上是 SSH)连接在远程服务器上执行 zip
命令。
相关问题:How to decode Zip file from sftp file using paramiko python
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。