Python 如何使用pysftp从服务器上的文件在SFTP服务器上创建zip文件
我想编写一个Python脚本,连接到远程SFTP服务器,并在远程服务器中创建一个ZIP文件,该文件由远程服务器本身中存在的特定文件组成。我已经写了下面的脚本,我正在使用PySTFP来实现这个Python 如何使用pysftp从服务器上的文件在SFTP服务器上创建zip文件,python,python-3.x,zip,sftp,pysftp,Python,Python 3.x,Zip,Sftp,Pysftp,我想编写一个Python脚本,连接到远程SFTP服务器,并在远程服务器中创建一个ZIP文件,该文件由远程服务器本身中存在的特定文件组成。我已经写了下面的脚本,我正在使用PySTFP来实现这个 with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword, cnopts=cnopts) as sftp: print("Connection succesfully stablishe
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文件实际存储到本地系统。但是你仍然需要做所有的转移。因此,这将是非常低效的
最好使用SFTP(或SSH)连接在远程服务器上执行
zip
命令
相关问题: