2010-10-15 33 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