1. 程式人生 > >遞歸列出目錄裏的文件、匿名函數

遞歸列出目錄裏的文件、匿名函數

usr microsoft 裏的 過程 lam sys.argv str print mil

遞歸列出目錄裏的文件

#!/usr/bin/python

import os

import sys

def print_file(path):

lidir=os.listdir(path)

dirs=[i for i in lidir if os.path.isdir(os.path.join(path,i))]

files=[i for i in lidir if os.path.isfile(os.path.join(path,i))]

if files:

for i in files:

print os.path.join(path,i)

if dirs:

for j in dirs:

print_file(os.path.join(path,j))

print_file(sys.argv[1])


匿名函數

匿名函數就是沒有函數名的函數,即 lambda 函數,lambda 函數是一種快速定義單行的最小函數,可以用在任何需要函數的地方,lambda 可以省去定義函數的過程,讓代碼更加精簡,而且使用 lambda 在某些時候讓代碼更容易理解,對於一些抽象的,不會被別的地方再重復使用的函數,有時候函數起個名字也是個難題,使用 lambda 不需要考慮命名的問題

傳統的函數:

In [66]: def add(x,y):

...: return x + y

...:


In [67]: add(3,4)

Out[67]: 7


匿名函數:

In [68]: r=lambda x,y:x+y # lambda 語句中,冒號前是參數,可以有多個,用逗號隔開,冒號右邊是返回值,lambda 語句構建的其實是一個函數對象

In [69]: r(4,5)

Out[69]: 9


遞歸列出目錄裏的文件、匿名函數