我正在寻找一种获取特定文件夹内文件和(子)文件夹的相对路径的好方法。
对于我目前使用的方法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)
还有其他建议吗?
Thanks
Use os.path.relpath() https://docs.python.org/3.8/library/os.path.html#os.path.relpath。这正是其预期用途。
import os
root_dir = "myfolder"
file_set = set()
for dir_, _, files in os.walk(root_dir):
for file_name in files:
rel_dir = os.path.relpath(dir_, root_dir)
rel_file = os.path.join(rel_dir, file_name)
file_set.add(rel_file)
注意os.path.relpath()
已在 Python 2.6 中添加,并在 Windows 和 Unix 上受支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)