2016-12-02 62 views
0

我正試圖學習從這個book應用於機器學習的Python。 我跑進第3章下面的代碼,我不完全理解:解釋Python開放函數段

posts = [open(os.path.join(DIR, f)).read() for f in 
os.listdir(DIR)] 

我的open函數做什麼的想法,但我感到困惑,當我看到os.path.join功能爲f。我可以得到一個noob程序員能夠理解的直觀和詳細的答案嗎?

回答

0

這是一個列表理解。它等同於以下內容:

posts = [] 
for f in os.listdir(DIR): 
    filename = os.path.join(DIR, f) 
    file = open(filename) 
    content = file.read() 
    posts.append(content) 

對於在目錄列表中每個文件名,這將與全路徑名結合起來,打開它,閱讀它,並把它添加到列表posts