Python – 获取目录中所有文件和子文件夹的相对路径

我正在寻找一个很好的方式来获取特定文件夹中的文件和(子)文件夹的相对路径。

对于我目前的方法,我使用os.walk()。它正在工作,但对我来说似乎不是“pythonic”:

myFolder = "myfolder"
fileSet = set() # yes, I need a set()

for root, dirs, files in os.walk(myFolder):
    for fileName in files:
        fileSet.add(root.replace(myFolder, "") + os.sep + fileName)

任何其他建议?

谢谢

使用os.path.relpath().这正是其预期用途。

import os
rootDir = "myfolder"
fileSet = set()

for dir_, _, files in os.walk(rootDir):
    for fileName in files:
        relDir = os.path.relpath(dir_, rootDir)
        relFile = os.path.join(relDir, fileName)
        fileSet.add(relFile)

请注意,os.path.relpath()已添加到Python 2.6中,并在Windows和Unix上受支持。

http://stackoverflow.com/questions/1192978/python-get-relative-path-of-all-files-and-subfolders-in-a-directory

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Python – 获取目录中所有文件和子文件夹的相对路径