#!/usr/bin/python3
import paramiko
import os
class SFTP(object):
def __init__(self,ip,username,password):
self.ip = ip
self.username = username
self.password = password
self.tport = paramiko.Transport(sock=(self.ip,22))
self.tport.connect(username = self.username,password=self.password)
self.sftp=paramiko.SFTPClient.from_transport(self.tport)
def close(self):
self.tport.close()
pass
def __mkdirs(self,remotepath):
path = ''
p = remotepath.split('/')
for i in p[1:-1]:
path =path + '/'
l = self.sftp.listdir(path)
if i in l:
path =path + i
else:
path =path + i
self.sftp.mkdir(path)
pass
def sftp_put(self,localfile,remotefile):
self.__mkdirs(remotefile)
self.sftp.put(localfile,remotefile)
def main():
s = SFTP('xxx.xxx.xxx.xxx','xxx','xxx')
s.sftp_put('/home/xxx/log','/home/xxx/xxx/log')
s.close()
if __name__ == '__main__':
main()
能够在不存在目录时创建目录,但不要存在与目录同名的文件,否则就会报错。
参考1:找不到了,那个博主只是简单的写了上传文件到存在的目录中,我则添加了创建路径的方法