Python(基于用户名和密码上传和下载文件)

1. 导入第三方模块

1.1 导入paramiko:
	import paramiko			
1.2 导入AuthenticationException, SSHException: 
	from paramiko import AuthenticationException, SSHException
1.3 导入logging: 
	import logging			//用于生成日志
1.4 logging.basicConfig(
		filename='my.log',
		level=logging.WARN,
		format="%(asctime)s-%(filename)s-%(lineno)d- %
		(levelname)s: %(message)s "
	)			//建立日志文件:my.log;当等级为WARN及以上时,写入日志文件中,文件格式为format

2. 连接用户

2.1 建立与远程主机的通道:
	transport = paramiko.Transport((ip, 22))			//ip为远程主机ip,22为端口号
2.2 验证用户名和密码:
	transport.connect(username='user', password='password')
2.3 根据创建并验证成功的通道, 创建sftp客户端:
    sftp = paramiko.SFTPClient.from_transport(transport)

3. 捕获异常

3.1 密码错误异常:
	except AuthenticationException as e:
		logging.error("主机%s连接失败" % (self.host))			//将异常写入日志
    	print("密码错误:", e)
3.2 主机名错误:
	except SSHException as e:
		logging.error("主机%s密码错误" % (self.host))			//将异常写入日志中
    	print("主机不存在:", e)
3.3 未知错误:
    except Exception as e:
    	logging.error("未知错误: ", e)			//将异常写入日志
   		print("未知错误:", e)

4. 上传、下载文件

4.1 上传文件:
	sftp.put('本地文件路径/文件名', '目标文件路径/目标文件名')
4.2 下载文件:
	sftp.get( '目标文件路径/目标文件名','本地文件路径/文件名' )

5. 关闭两台主机建立的通道

5.1 transport.close()

你可能感兴趣的:(Python(基于用户名和密码上传和下载文件))