繁体   English   中英

在目录和子目录中查找具有扩展名的文件?

[英]Find files with extension in directory and subdirectories?

我想制作一个Python脚本,以便根据扩展名将我桌面上的文件快速整理到文件夹中。 基本上,我如何使用循环来获取文件,对其执行某些操作,继续下一个文件,等等?

你需要的一切都可能包含在os库中,更具体地说是os.path位和shutil

要浏览目录树,您可以使用os.walk并移动文件,可以使用shutil.move


编辑:我一起入侵的一个小脚本让你前进:

import os
import shutil as sh
from collections import defaultdict

DESKTOP = '/home/mac/Desktop'

#This dictionary will contain: <extension>: <list_of_files> mappings
register = defaultdict(list)

#Populate the register
for dir_, dirs, fnames in os.walk('/home/mac/Desktop'):
    for fname in fnames:
        register[fname.rsplit('.', 1)[1]].append(os.path.join(dir_, fname))

#Iterate over the register, creating the directory and moving the files 
#with that extension in it.
for dirname, files in register.iteritems():
    dirname = os.path.join(DESKTOP, dirname)
    if not os.path.exists(dirname):
        os.makedirs(dirname)
    for file_ in files:
        sh.move(file_, dirname)

我会从模块os和文件名列表中推荐os.walk

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM