shutil模块几种复制函数的区别
shutil.copyfile(src, dst)
复制文件内容(不包含元数据)从src到dst。 dst必须是完整的目标文件名;拷贝目录参见shutil.copy()。如果src和dst是同一文件,就会引发错误shutil.Error。dst必须是可写的,否则将引发异常IOError。如果dst已经存在,它会被替换。特殊文件,例如字符或块设备和管道不能使用此功能,因为copyfile会打开并阅读文件。 src和dst的是字符串形式的路径名。
shutil.copy(src, dst)
复制文件src到文件或目录dst。如果dst是目录,使用src相同的文件名创建(或覆盖),权限位也会复制。src和dst的是字符串形式的路径名。
shutil.copy2(src, dst)
类似shutil.copy,元数据也复制,实际上先调用shutil.copy,然后调用shutil.copystat。这类似于Unix命令cp -p。
shutil.copymode(src, dst)
从src复制权限位到dst。该文件的内容,所有者和组不受影响。src和dst的是字符串形式的路径名。要想拷贝文件时间戳,需要copystat。
shutil.copystat(src, dst)
从src复制权限位,最后访问时间,最后修改时间到dst。该文件的内容,所有者和组不受影响。 src和dst的是给定的字符串路径名。
shutil.copytree( olddir, newdir, True/Flase)
把olddir拷贝一份newdir,olddir和newdir都只能是目录,且newdir必须不存在。如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接