我每天为传输文件做类似的事情。正如 yakxxx 建议的那样,我压缩文件然后传输。我所做的示例(在 Windows 机器上):
import zipfile
from glob import glob as gg
files = gg('path*.txt')
# open zip file (create it, or open if already exists)
zFile = zipfile.ZipFile('FileName.zip','w')
# zip files on local machine
[zFile.write(r,r,zipfile.ZIP_DEFLATED) for r in files]
或者,如果 zipfile 已经存在并且您想要添加新文件。
zFile = zipfile.ZipFile('FileName.zip','a')
# List files already zipped.
done = zipfile.ZipFile('FileName.zip','r').namelist()
# zip file into zip file.
[zFile.write(r,r,zipfile.ZIP_DEFLATED) for r in files if r not in done]
现在通过 paramiko 将此 zip 文件推送到您的远程计算机。
---------------
编辑
仅供参考,在写入 zip 文件时,您需要小心。我写这个假设您在包含您要压缩的文件的目录中运行。如果不是,则需要使用:
import os
zFile.write(r,os.path.basename(r),zipfile.ZIP_DEFLATED)