Python高级文件操作模块shutil

编程 · 2023-08-17 · 188 人浏览

复制文件的函数在os模块中不存在。原因是复制文件并非由操作系统提供的系统调用。

shutil模块提供了copyfile()函数,可以看做是os模块的补充。

删除

import os
import shutil

base_path = os.path.dirname(__file__)

path = os.path.join(base_path, 'img')
## 删除文件夹
shutil.rmtree(path)

拷贝

## 拷贝文件夹
shutil.copytree("./img","./img2")

src = os.path.abspath(__file__)
dst = os.path.join(os.path.dirname(__file__), "aaa.py")

## 文件到文件的拷贝,其中dst必须是文件
shutil.copyfile(src, dst)

## 文件拷贝,src必须是文件,dst可以是文件或者目录
shutil.copy(src, dst)

## 同上,但是拷贝的文件带着原有属性,类似于Linux系统里的cp -p命令
shutil.copy2(src, dst)

重命名/移动

移动一个文件或者目录到指定的位置,src和dst都可以是文件或者目录。

shutil.move("./img/1.txt","./img/new.txt")
shutil.move("./img","./img_new")

压缩文件

## 压缩文件
## base_name 压缩后的文件
## format 压缩格式,例如:zip tar gztar bztar xztar
## root_dir 要压缩的文件夹路径
shutil.make_archive(base_name='datafile', format='zip', root_dir=path)

## 解压文件
## filename 要解压的压缩包文件
## extract_dir 解压的路径
## format 压缩文件格式
shutil.unpack_archive(filename='datafile.zip', extract_dir='./imgs', format='zip')
Python
Theme Jasmine by Kent Liao