Im Tyring to Delete all Files in E:. with wildcard.
E:\test\*.txt I would ask rather than test the os.walk. In windows.
The way you would do this is use the glob module:
import glob import os for fl in glob.glob("E:\\test\\*.txt"): #Do what you want with the file os.remove(fl) * instead of if file.endswith(".txt"): in the accepted answer.A slightly verbose writing of another method
import os dir = "E:\\test" files = os.listdir(dir) for file in files: if file.endswith(".txt"): os.remove(os.path.join(dir,file)) Or
import os [os.remove(os.path.join("E:\\test",f)) for f in os.listdir("E:\\test") if f.endswith(".txt")] map better than the list comprehension mentioned in the answer?You could use popen for this as well if you want to do it in fewer lines
from subprocess import Popen proc = Popen("del E:\test\*.txt",shell=False) #import glob,os ; [os.remove(x) for x in glob.glob("E:\test\*.txt")]If you want to delete file with more than one extension then define those extensions in tuple like below
import os def purge(dir): files = os.listdir(dir) ext = ('.txt', '.xml', '.json') for file in files: if file.endswith(ext): print("File -> " + os.path.join(dir,file)) os.remove(os.path.join(dir,file))