Python文件操作 shutil库使用举例
HDUZN

本文用shutil库,实现对文件的操作(复制、移动)和对文件夹的操作(复制、移动、删除)的使用举例。

官方文档:https://docs.python.org/3.9/library/shutil.html

一、复制文件

1.copy(src, dst)

  • src是文件,dst可以是文件或目录
  • 把src文件复制到目录dst目录中(前提是存在dst目录)
  • 如果不存在dst目录,会复制内容保存成一个test文件,相当于复制文件了。
1
2
3
4
5
import shutil

src = r'D:\a.txt'
dst = r'D:\test'
shutil.copy(src, dst) # return dst

2.copy2(src, dst)

  • src是文件,dst可以是文件或目录
  • 把src文件复制到dst目录中,并保留源文件元数据(前提是存在dst目录)
  • 这个和copy的区别就是复制出来的src文件的元数据能保留,比如src文件的修改日期这些会不变化。
1
2
3
4
5
import shutil

src = r'D:\a.txt'
dst = r'D:\test2'
shutil.copy2(src, dst) # return dst,如果不存在dst目录,会复制内容保存成一个test2文件

3.copyfileobj(fsrc, fdst)

  • src,dst都是文件
  • 把src文件内容复制到dst文件中,如果原文件存在,会覆盖原内容
1
2
3
4
5
import shutil

src = r'D:\b.txt'
dst = r'D:\test\a.txt'
shutil.copyfileobj(open(src,'r'), open(dst,'w'))

4.copyfile(src, dst)

  • src,dst都是文件
  • 把src文件内容复制到dst文件中,如果原文件存在,会覆盖原内容
1
2
3
4
5
import shutil

src = r'D:\b.txt'
dst = r'D:\test\a.txt'
shutil.copyfile(src, dst)

所以,感觉copyfileobj、copyfile这2个方法也用不着,一般直接用copy()就可以实现。

二、复制文件夹

5.copytree(src, dst)

  • src,dst都是目录
  • 把src文件夹复制到dst文件夹(dst文件夹不能已存在)
1
2
3
4
5
import shutil

src = r'D:\test'
dst = r'D:\test3'
shutil.copytree(src, dst)

三、删除目录

6.rmtree(path)

  • 删除path目录,path不能是文件
1
2
3
4
import shutil

path= r'D:\test3'
shutil.rmtree(path)

四、移动文件或目录

7.move(src, dst)

  • 把src文件或目录移动到dst目录
1
2
3
4
5
6
7
import shutil

src = r'D:\test'
src2 = r'D:\test2\b.txt'
dst = r'D:\test3'
shutil.move(src, dst)
shutil.move(src2, dst)
  • 本文标题:Python文件操作 shutil库使用举例
  • 本文作者:HDUZN
  • 创建时间:2022-05-15 16:50:45
  • 本文链接:http://hduzn.cn/2022/05/15/Python文件操作-shutil库使用举例/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论