python删除指定文件夹下文件和文件夹的方法详解
程序员文章站
2022-06-15 13:03:52
前记 python删除指定文件夹下的文件,是一个常用的功能。我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了。 基本模块 这里面会用到几个模块,一个是目录下所有文件的的函数:listdir 常用的使用方法: 另外一个就是查看该目录下是否有特定的文件,这个就是name.swi ......
前记
python删除指定文件夹下的文件,是一个常用的功能。我找了不少地方,一直没有找到合适的模版,那只好自己倒腾一个比较实用的模版了。
基本模块
这里面会用到几个模块,一个是目录下所有文件的的函数:listdir 常用的使用方法:
import os filenames = os.listdir('.') print(filenames)
另外一个就是查看该目录下是否有特定的文件,这个就是name.swith()函数,具体的使用方法如下:
state = any(name.endswith('.py') for name in filenames) print(state)
一个是查找该目录下的子目录。如下所示:该目录子目录static下的所有文件如下所示:
tmp_path = os.path.join(base_path,'static/')
还有一种方法用于查找该目录下的特定文件。一般使用glob模块。glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。具体的使用方法如下所示:
filenames = glob.glob(path + r'/*')
实例解析
这里面例子如下所示:具体的解析和运行结果非常简单,需要你自己操作了;
import os import sys import glob def del_files(path): filenames = glob.glob(path + r'/*') for filename in filenames: try: os.remove(filename) print("remove file:%s" % filenames) except: except: try: os.mkdir(filename) print("mkdir file:%s " % filename) except: print("del file:%s " % filename) del_files(filename) os.rmdir(filename) def del_file(path): lsdir = os.listdir(path) print(lsdir) if any(name.endswith('.py') for name in lsdir): print("no txt in this dir") else: print("have txt and need to remove") for file in lsdir: try: c_path = os.path.join(path,file) os.remove(c_path) print("rm c path: %s " % c_path) except: del_file(path) os.rmdir(file) print("rm failed try again: %s " % c_path) if __name__ == '__main__': base_path = os.getcwd() print("below is base path:\n %s" % base_path) tmp_path = os.path.join(base_path,'static/') print("below is tmp_path:\n %s" % tmp_path) #del_files(tmp_path) del_file(tmp_path)