I'm fairly new to Python, but I have gotten this code to work, and in fact, do what it's intended to do.
However, I'm wondering if there is a more efficient way to code this, perhaps to enhance the processing speed.
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')
Right now, there are about 8000 files, and it takes quite some time to process every file and check if it indeed ends in png or jpg.
Since you are recursing through subdirectories, use os.walk:
If the program works and the speed is acceptable, I wouldn't change it.
Otherwise, you could try unutbu's answer.
Generally, I would leave away the
stuff as I don't see any purpose in not using the strings directly.
And better test for ".png" instead of "png".
An even better solution would be to define
somewhere centally and use that in
.