Python删除某些文件扩展名

Two*_*Two 5 python logic file-extension delete-file

我是Python的新手,但是我已经让这个代码工作了,事实上,我做了它想做的事情.

但是,我想知道是否有更有效的方法对此进行编码,也许是为了提高处理速度.

 import os, glob


def scandirs(path):
    for currentFile in glob.glob( os.path.join(path, '*') ):
        if os.path.isdir(currentFile):
            print 'got a directory: ' + currentFile
            scandirs(currentFile)
        print "processing file: " + currentFile
        png = "png";
        jpg = "jpg";
        if currentFile.endswith(png) or currentFile.endswith(jpg):
            os.remove(currentFile)

scandirs('C:\Program Files (x86)\music\Songs')
Run Code Online (Sandbox Code Playgroud)

现在,大约有8000个文件,处理每个文件并检查它是否确实以png或jpg结尾需要相当长的时间.

unu*_*tbu 16

由于您是通过子目录递归,请使用os.walk:

import os

def scandirs(path):
    for root, dirs, files in os.walk(path):
        for currentFile in files:
            print "processing file: " + currentFile
            exts = ('.png', '.jpg')
            if currentFile.lower().endswith(exts):
                os.remove(os.path.join(root, currentFile))
Run Code Online (Sandbox Code Playgroud)