2010-10-15 80 views
4

我只是在做一堆Python exercises而且有一個練習,你應該。給定一個目錄名稱,遍歷'特殊文件'(包含模式__ \ w + __)並輸出它們的絕對路徑。這裏需要os.path.join(dir,filename)嗎?

這裏是我的代碼:

def get_special_paths(dir): 
    filenames = os.listdir(dir) 

    for filename in filenames: 
    if re.search(r'__\w+__', filename): 
     print os.path.abspath(os.path.join(dir, filename)) 

我加入了目錄和文件名作爲例子表明,但我沒有看到而join()是必要的。如果我不加入文件名+目錄,而是隻傳遞文件名abspath(),那麼輸出將是相同的。

+2

只要您將'dir'改爲任何有用的東西,它將無法使用'os.path.join' – SilentGhost 2010-10-15 13:21:46

回答

7

如果我不加入文件名+目錄,而是隻傳遞文件名abspath(),輸出將是相同的。

僅當dir等於當前工作目錄時,不一定如此。要麼你需要加入,要麼get_special_paths不應該有參數,而應該假設dir = os.getcwd()

+0

+1就是這樣。只通過使用來試用這個例子。作爲給定的目錄。 – helpermethod 2010-10-15 13:33:32