匿名函数及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('[root@V1 ~ ]# ').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()
原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/11053864.html