我正在寻找一种获取特定文件夹中文件和(子)文件夹的相对路径的好方法.
对于我目前使用的方法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)
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
谢谢
New*_*onx 67
使用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)
Run Code Online (Sandbox Code Playgroud)
请注意,它os.path.relpath()是在Python 2.6中添加的,并且在Windows和Unix上受支持.
myFolder = "myfolder"
fileSet = set()
for root, dirs, files in os.walk(myFolder):
for fileName in files:
fileSet.add( os.path.join( root[len(myFolder):], fileName ))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40222 次 |
| 最近记录: |