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))