For some reason this returns me an empty list, and I have no idea why.
import os, fnmatch
vidext = ['.avi', '.mkv', '.wmv', '.mp4', '.mpg', '.mpeg', '.mov', '.m4v']
def findExt(folder):
matches = []
for root, dirnames, filenames in os.walk(folder):
for extension in vidext:
for filename in fnmatch.filter(filenames, extension):
matches.append(os.path.join(root, filename))
return matches
print(findExt("D:\TVRip"))
You'd need to add a wildcard to each extension for fnmatch.filter()
to match:
fnmatch.filter(filenames, '*' + extension)
but there is no need to use fnmatch
here at all. Just use str.endswith()
:
for root, dirnames, filenames in os.walk(folder):
for filename in filenames:
if filename.endswith(extensions):
matches.append(os.path.join(root, filename))
or expressed as a list comprehension:
return [os.path.join(r, fn)
for r, ds, fs in os.walk(folder)
for fn in fs if fn.endswith(extensions)]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.