python用paramiko简单写sftp

#!/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:找不到了,那个博主只是简单的写了上传文件到存在的目录中,我则添加了创建路径的方法

参考2:http://docs.paramiko.org/en/2.4/api/sftp.html

猜你喜欢

转载自blog.csdn.net/ZRXSLYG/article/details/85497645