shutil模块

import shutil,os
1.shutil.copy(source,destination)函数实现文件复制功能,将 source 文件复制到 destination 文件夹中,两个参数都是字符串格式。如果 destination 是一个文件名称,那么它会被用来当作复制后的文件名称,即等于 复制 + 重命名。举例如下:

>>> shutil.copy('D:\\大鱼-周深.txt','D:\\光荣之路')
'D:\\光荣之路\\大鱼-周深.txt'
>>> shutil.copy('D:\\大鱼-周深.txt','D:\\123')
'D:\\123'
>>> shutil.copy('D:\\大鱼-周深.txt','D:\\1234\\a.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python36\lib\shutil.py", line 241, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "C:\Python36\lib\shutil.py", line 121, in copyfile
    with open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\1234\\a.txt'

2.shutil.copytree(source,destination)
shutil.copytree()函数复制整个文件夹,将 source 文件夹中的所有内容复制到 destination 中,包括 source 里面的文件、子文件夹都会被复制过去。两个参数都是字符串格式。
注意,如果 destination 文件夹已经存在,该操作并返回一个 FileExistsError 错误,提示文件已存在。即表示,如果执行了该函数,程序会自动创建一个新文件夹(destination参数)并将 source 文件夹中的内容复制过去
举例如下:

>>> shutil.copytree('E:\\20180410杭州年会照片','D:\\光荣之路')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python36\lib\shutil.py", line 315, in copytree
    os.makedirs(dst)
  File "C:\Python36\lib\os.py", line 220, in makedirs
    mkdir(name, mode)
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'D:\\光荣之路'
>>> shutil.copytree('E:\\20180410杭州年会照片','D:\\copy杭州年后照片')
'D:\\copy杭州年后照片'

3.shutil.move()
shutil.move() 函数会将 source 文件或文件夹移动到 destination 中。返回值是移动后文件的绝对路径字符串。
如果 destination 指向一个文件夹,那么 source 文件将被移动到 destination 中,并且保持其原有名字。例如

>> import shutil
>>> shutil.move('E:\\大鱼-周深.txt','D:\\1')
'D:\\1\\大鱼-周深.txt'

如果文件夹中已经存在了同名文件,会报错

>>> shutil.move('D:\\大鱼-周深.txt','D:\\光荣之路')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python36\lib\shutil.py", line 542, in move
    raise Error("Destination path '%s' already exists" % real_dst)
shutil.Error: Destination path 'D:\光荣之路\大鱼-周深.txt' already exists

有带后缀的文件,等于移动+改名

>>> shutil.move('D:\\大鱼-周深.txt','D:\\1\\back_大鱼.txt')
'D:\\1\\back_大鱼.txt'

data.data移动+改名(无后缀)

>>> shutil.move('D:\data.data', 'D:\eggs')
'D:\\eggs'

4.shutil.copyfile(source,destination)
前提:有权限
source复制到destination里,如果destination已存在会替代

>>> shutil.copyfile(r'D:\1\大鱼-周深.txt','D:\\光荣之路\\大鱼-周深.txt')
'D:\\光荣之路\\大鱼-周深.txt'

5.shutil.copy2() #拷贝了文件和状态信息

6.shutil.rmtree() #移除整个目录,无论是否空,轻易不要用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值