python文件和文件夹的操作os和shutil模块

python文件和文件夹的操作

我们对文件和文件夹经常会做一些操作,python 的os和shutil模块,可以实现很多的文件和目录的操作。
引入import os
os可以实现简单的文件夹和文件操作。

shutil可以实现复杂的文件操作,比如对文件的拷贝和复制。
引入import shutil.

判断路径或文件

os.path.isabs(...) # 是否是绝对路径
os.path.exists(...) # 判断是否真实存在
os.path.isdir(...) # 判断是否是个目录
os.path.isfile(...) #判断是否是个文件
  • 使用示例
   if not os.path.exists(restore_path):
      os.makedirs(restore_path)

判断是否存在,不存在时,则创建这个文件夹。

合并路径

os.path.join(path1,path2)

这样可以处理了不同操作系统的路径分隔符。比如linux下,返回path1/path2.windows下返回path1\path2.

路径名、文件名分隔

os.path.split(...) # 分隔目录和文件名/文件夹名
os.path.splitdrive(...) # 分隔盘符(windows系统)
os.path.splitext(..)    #分隔文件和扩展名

不要求目录或文件真实存在,只对字符串进行操作。

工作目录及创建文件夹操作

os.getcwd()  #获取当前工作目录
os.chdir(...) #改变工作目录
os.listdir(...) #列出目录下的文件
os.mkdir(...)   #创建单个目录
os.makedirs(...) #创建多级目录

创建出错的原因有:1.path已存在2.驱动器不存在3.磁盘已满4 磁盘是只读的或者没有写权限

删除文件夹、文件

os.rmdir(...)  #只能删除空文件夹,如需删除文件夹及其下的文件,需用shutil
os.remove(...) #删除单一文件
shutil.rmtree(...)  #删除文件夹及其下所有文件
  • 使用示例
os.remove(project_zip)
file=os.path.join(upload_path,zip_name.split('.')[0])
if os.path.exists(file):
      shutil.rmtree(file)

产生异常的可能原因: (1) 路径不存在 (2) 路径子目录中有文件或下级子目录(os.rmdir) (3) 没有操作权限或只读

重命名文件夹/文件

os.rename(oldname,newname)

异常原因:1.oldname不存在 2.newname已存在

复制、移动文件夹或文件

  shutil.copyfile("old","new") #复制文件,只能是文件
  shutile.copytree('old','new') #复制文件夹,都只能是目录,且new不存在
  shutile.copy('old','new') #复制文件/文件夹,复制 old 为 new(new是文件,若不存在,即新建),复制 old 为至 new 文件夹(文件夹已存在)
  shutil.move('old','new') #移动文件/文件夹至new
  • 使用示例
   if not os.path.exists(db_folder):
       os.makedirs(db_folder)
   shutil.copy(os.path.join(db_prefolder,dbname),os.path.join(db_folder,dbname))

引用

猜你喜欢

转载自blog.csdn.net/qq_24495287/article/details/84801043