匿名函数及paramiko模块
Posted agnostida-trilobita
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匿名函数及paramiko模块相关的知识,希望对你有一定的参考价值。
1.匿名函数
随着程序代码的不断增加,起名字其实也是非常困难的一件事
一些简单的功能完全没必要用def函数,匿名函数足矣
def test(x,y):
return x+y
res = test(1,2)
print(res)
res = (lambda x,y: x+y)(1,2) 匿名函数用lambda定义
print(res)
上面两个函数实现的功能相同
2.内置函数
1)max
info =
‘li‘: 2000,
‘zhao‘:30000,
‘wu‘: 25000,
‘du‘: 40000
def func(k):
return info[k]
res = max(info,key=lambda k: info[k])将info输入到key=后的函数中
print(res)
2)sorted 排序
info =
‘li‘: 2000,
‘zhao‘:30000,
‘wu‘: 25000,
‘du‘: 40000
res = sorted(info,key=lambda k:info[k])
print(res)
3)map:映射
l1 = [1,2,3]
l2 = [‘a‘,‘b‘,‘c‘,‘d‘]
res = zip(l1,l2)
print(list(res))
l2中多出来的元素并不会与l1中元素进行对应,输出不会报错并且只输出有对应的部分
names = [‘zhao‘, ‘du‘, ‘wu‘]
info = []
for name in names:
data = name.replace(name,‘%s_NB‘ % name)
info.append(data)
print(info)
res = map(lambda name: ‘%s_NB‘ % name,names)
print(list(res))
4)filter 过滤
names = [‘zhao_NB‘, ‘du_NB‘, ‘wu_NB‘,‘li‘]
for name in names:
if name.endswith(‘NB‘):
print(name)
res = filter(lambda name: name.endswith(‘NB‘),names)
print(list(res))
3.paramiko模块
模拟ssh登录linux主机,有上传和下载功能
1)登录
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=‘192.168.52.233‘,port=22,username=‘root‘,password=‘1‘)
while True:
cmd = input(‘[[email protected] ~ ]# ‘).strip()
if cmd:
stdin,stdout,stderr = ssh.exec_command(cmd)
print(stdout.read().decode(‘utf-8‘))
2)上传和下载
import paramiko
t = paramiko.Transport((‘192.168.52.233‘,22))必须为元组形式
t.connect(username=‘root‘,password=‘1‘)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(r‘pass‘,‘pass‘)上传,路径必须为绝对路径,后面的路径必须指定文件名可相同可不同
sftp.get(‘pass‘,r‘pass‘)下载
sftp.close()
以上是关于匿名函数及paramiko模块的主要内容,如果未能解决你的问题,请参考以下文章