接昨天的遞迴呼叫
寫乙個指令碼,列出目錄下所有的檔案
#!/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...