常用操作文件目录汇总

用到的模块主要有 os 和 shutil

文件操作

  • 返回指定目录下的所有文件和目录名

  • os.listdir()
    
  • 检验给出的路径是否是一个文件

  • os.path.isfile()
    
  • 检验给出的路径是否是一个目录

  • os.path.isdir()
    
  • 检验给出的路径是否真地存

  • os.path.exists()
    
  • 返回一个路径的目录名和文件名

  • os.path.split() 
    
  • 分离文件扩展名

  • os.path.splitext()
    
  • 获取文件名

  • os.path.basename()
    
  • 文件重命名

  • os.rename(old, new)
    
  • 创建多级目录

  • os.makedirs(r“c:\python\test”)
    
  • 创建单个目录

  • os.mkdir(“test”)
    

目录操作

  • 复制文件

  • shutil.copyfile("oldfile","newfile")	#oldfile和newfile都只能是文件
    shutil.copy("oldfile","newfile") 		#oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
    
  • 复制文件夹

  • shutil.copytree("olddir","newdir")        #olddir和newdir都只能是目录,且newdir必须不存在
    
  • 重命名目录

  • os.rename("oldname","newname")              #文件或目录都是使用这条命令
    
  • 移动文件(目录)

  • shutil.move("oldpos","newpos")  
    
  • 删除目录

  • os.rmdir("dir")                             #只能删除空目录
    shutil.rmtree("dir")                        #空目录、有内容的目录都可以删
    
  • 转换目录

  • os.chdir("path")                            #换路径
    

操作实例

import os
"""
查找某目录下的所有文件
"""

def search_files(base_path):
    if os.path.isdir(base_path):
        base_path_dirs = os.listdir(base_path)
        for dir in base_path_dirs:
            path = os.path.join(base_path,dir)
            if os.path.isdir(path):
                search_files(path)
            else:
                print(path)

                
if __name__ == '__main__':
    base_path = 'E:\django_project'
    search_files(base_path)