Delete files with python through OS shell

前端 未结 4 405
时光取名叫无心
时光取名叫无心 2020-12-30 02:19

Im Tyring to Delete all Files in E:. with wildcard.

E:\\test\\*.txt

I would ask rather than test the os.walk. In windows.

相关标签:
4条回答
  • 2020-12-30 02:42

    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)
    
    0 讨论(0)
  • 2020-12-30 02:46

    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))
    
    0 讨论(0)
  • 2020-12-30 02:58

    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")]
    
    0 讨论(0)
  • 2020-12-30 03:02

    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)
    
    0 讨论(0)
提交回复
热议问题