查找所有文件的间接目录和子目录,并提供目录中的路径

时间:2015-11-12 21:32:34

标签: python

您好我想查找文件夹中的所有文件,包括子文件夹中的所有文件。这是我的代码

all_files = []
for path, subdirs, files in os.walk(root):
    for name in files:
        all_files.append(os.path.join(path, name))
print "all_files2 = ", all_files

但上面的代码为我提供了包含整个路径的所有文件。我想要所有带有root路径的文件。所以如果文件是root文件,我只想要文件名,如果它在子目录root / images我想要images / filename .. 谢谢卡尔

1 个答案:

答案 0 :(得分:3)

变化:

all_files.append(os.path.join(path, name))

为:

all_files.append(os.path.join(path[len(root):], name))

从根的长度开始切片当前路径。即:

>>> root = 'hello'
>>> sub = 'hello is is ew'
>>> sub[:len(root)]
'hello'
>>> sub[len(root):]
' is is ew'

您也可以使用relpath()

>>> os.path.relpath('root/image/thistoo','root')
'image\\thistoo'

这样:

all_files.append(os.path.join(os.path.relpath(path,root), name))