如何使用 pysftp 从服务器上的文件在 SFTP 服务器上创建 zip 文件
How to create a zip file on SFTP server from files on the server using pysftp
我想编写一个 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 文件。谁能帮我解决这个问题?
实际上,您的代码将 local 文件压缩为 local ZIP 存档。请注意您的代码如何从不使用 sftp
变量。
如果您想使用本地将远程文件压缩到远程 ZIP存档Python 脚本,你必须下载远程文件,将它们压缩到本地并上传 ZIP 存档。
您可以在“内存中”执行所有这些操作,而无需实际将远程文件或 ZIP 文件物理存储到本地系统。但是您仍然需要进行所有传输。所以效率会非常低。
您最好使用 SFTP(或实际上是 SSH)连接在远程服务器上执行 zip
命令。
相关问题:How to decode Zip file from sftp file using paramiko python
我想编写一个 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 文件。谁能帮我解决这个问题?
实际上,您的代码将 local 文件压缩为 local ZIP 存档。请注意您的代码如何从不使用 sftp
变量。
如果您想使用本地将远程文件压缩到远程 ZIP存档Python 脚本,你必须下载远程文件,将它们压缩到本地并上传 ZIP 存档。
您可以在“内存中”执行所有这些操作,而无需实际将远程文件或 ZIP 文件物理存储到本地系统。但是您仍然需要进行所有传输。所以效率会非常低。
您最好使用 SFTP(或实际上是 SSH)连接在远程服务器上执行 zip
命令。
相关问题:How to decode Zip file from sftp file using paramiko python