python自動化運維學習第九天 匿名函式

2021-09-02 05:30:14 字數 1735 閱讀 7751

接昨天的遞迴呼叫

寫乙個指令碼,列出目錄下所有的檔案

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os,sys

defprint_files

(path)

: lsdir = os.listdir(path)

dirs =

[i for i in lsdir if os.path.isdir(os.path.join(path, i))]

files =

[i for i in lsdir if os.path.isfile(os.path.join(path, i))]

if files:

for f in files:

print os.path.join(path, f)

if dirs:

for d in dirs:

print_files(os.path.join(path, d)

)print_files(sys.argv[1]

)

os.listdir(path)

#列出path目錄下的檔案,結果放在列表裡

os.path.isdir(path)

#判斷path是否是目錄,返回布林值,無法判斷path是否存在,不存在返回false

os.path.isfile(path)

#判斷path是否是檔案,返回布林值,無法判斷path是否存在,不存在返回false

os.path.join(path1,path2,path3,..

.)#拼接path1、path2、path3...,返回乙個字串的路徑

lambda函式是一種快速定義單行的最小函式,可以用在任何需要函式的地方

##正常的函式

deffun

(x, y)

:return x * y

fun(5,

6)##使用lambda匿名函式

r =lambda x,y:x*y #冒號前為引數(x、y)r(5

,6)

匿名函式的優點:

使用python寫一些指令碼時,使用lambda可以省去定義函式的過程,讓**更加精簡。

對於一些抽象的,不會被別的地方再重複使用的函式,有時候函式起個名字也是乙個難題,使用lambda不需要考慮命名的問題。

使用lambda在某些時候讓**更容易理解

lambda語句中,冒號前是引數,可以有多個,逗號隔開,冒號右邊是返回值。

lambda語句構建的其實是乙個函式物件。

例子:

reduce

(lambda x, y: x*y,

range(1

,5))

#1到4的階乘

deffun

(x, y)

:return x * y

reduce

(fun,

range(1

,5))

#1到4的階乘

reduce函式會對引數序列中元素進行累積

reduce函式語法:

reduce(function, iterable[, initializer])

function — 函式名,有兩個引數

iterable — 可迭代物件

initializer — 可選,初始引數

Python自動化運維學習(一)

我們要使用連線物件獲得乙個cursor物件,接下來,我們會使用cursor提供的方法來進行工作.這些方法包括兩大類 1.執行命令,2.接收返回值 cursor用來執行命令的方法 callproc self,procname,args 用來執行儲存過程,接收的引數為儲存過程名和引數列表,返回值為受影響...

運維自動化

1,cobbler安裝環境準備 安裝epel epel release 6 8.noarch.rpm x86 64 epel release 6 8.noarch.rpm x86 安裝系列依賴環境 要是區域網用,建議關閉iptables 或是放行25151 80 69埠 和關閉selinux 檢視狀...

自動化運維

考慮的因素 源 打包為映象 發布到映象庫 利用k8s發布到物理機器執行,以服務的形式對外提供服務 目前的做法 0 建立乙個執行遠端命令的框架 1 每個應用建立乙個部署檔案指令碼 a 指定元 位址 c 同步源 到目標主機 d 接受指令碼引數 vername 2 版本號,映象tag fromport 3...