Python解决SFTP服务器上下载文件到本地
# coding=utf-8
import paramiko
import os
def DownLoadFile(sftp,LocalFile,RemoteFile): # 下载当个文件
file_handler = open(LocalFile, 'wb')
print(file_handler)
sftp.get(RemoteFile, LocalFile) # 下载目录中文件
file_handler.close()
return True
def DownLoadFileTree(sftp, LocalDir, RemoteDir): # 下载整个目录下的文件
if not os.path.exists(LocalDir):
os.makedirs(LocalDir)
for file in sftp.listdir(RemoteDir):
Local = os.path.join(LocalDir, file)
Remote=os.path.join(RemoteDir, file)
if file.find(".") == -1:#判断是否是文件
if not os.path.exists(Local):
os.makedirs(Local)
DownLoadFileTree(sftp,Local, Remote)
else:#文件
DownLoadFile(sftp,Local, Remote)
return "complete"
if __name__ == '__main__':
host = ' '#主机
port = #端口
username = '' #用户名
password = '' #密码
sf = paramiko.Transport((host, port))
sf.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(sf)
local = 'D:\datadisk2_hdf5'#本地文件
remote = '\SH-2-0'#远程文件或目录
DownLoadFileTree(sftp,local,remote)#下载