在python中使用os.walk时,如何只返回目标目录中的文件夹叶子。
这是我的功能:
def get_files(directory):
directory = os.path.abspath(directory)
if not os.path.isdir(directory):
return False
files = []
for root, subdirs, files in os.walk(directory):
for f in files:
if not f.lower().endswith('.jpg'):
continue
print root, f
get_files('C:/Temp')
返回此内容:
C:\Temp\images socket.jpg
C:\Temp\images vexusrollout.jpg
C:\Temp\newdocs\images utilityrollout.jpg
C:\Temp\newdocs\images vexushelper.jpg
C:\Temp\newdocs\images vexusmtl.jpg
C:\Temp\newdocs\images vexusrollout.jpg
我希望它能归还:
images socket.jpg
images vexusrollout.jpg
newdocs\images utilityrollout.jpg
newdocs\images vexushelper.jpg
newdocs\images vexusmtl.jpg
newdocs\images vexusrollout.jpg
我想要循环的任何目录之间的主要区别,我不希望该位包含在输出中。
答案 0 :(得分:3)
更改
print root, f
到
print root[len(directory)+1:], f