Python之shutil模块

阿里云2000元红包!本站用户参与享受九折优惠!

  shutil模块是高级的文件操作模块。之前学习的os模块之提供了对文件和目录进行一些简单的操作 功能。但是像—移动、复制、打包、压缩、解压等功能os模块都没有提供。shutil模块其实是对os模块的补充。下面我们简单的介绍一下shutil模块的使用。

 

1、shutil的复制功能

shutil.copyfileobj(fsrc, fdst[,length=16*1024])

功能:复制一个文件的内容到另一个文件中,可以copy指定大小的内容

 


 def copyfileobj(fsrc, fdst, length=16*1024):
  while 1:
   buf = fsrc.read(length)
   if not buf:
    break
   fdst.write(buf)
注意:源码中的fsrc,fdst都是一个文件对象,都需要先打开然后才能进行复制操作
示例:
 import shutil
 f1 = open('file1', 'r')
 f2 = open('file2', 'w+')
 shutil.copyfileobj(f1, f2, length=16*1024)


 

 

shutil.copyfile(src, dst)

功能:复制文件内容,其实copyfile()方法调用的就是copyfileobj方法。他的内部会帮我们打开文件

示例:


import shutil
 shutil.copyfile('file1', 'file2')


shutil.copymode(src, dst)

功能:复制文件权限,不更改文件内容、组和用户。其实就是将一个文件的权限复制给另一个文件

示例:


import shutil
shutil.copymode('file1', 'file2')
 
注意:这个方法必须要求目标文件一定要存在,否则会报错。


 

shutil.copystat(src, std)

功能:复制文件的所有状态信息,例如:权限、用户、组、时间等
 

shutil.copy(src, dst)

功能:复制文件的内容及权限,先copyfile后在copymode

 

shutil.copy2(src, dst)

功能:复制文件的内容以及文件的所有状态信息。先copyfile然后在copystat

 

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False)

功能:递归的复制文件的内容以及状态信息,其实就是复制目录。

 

2、删除文件及目录

shutil.rmtree(path, ignore_errors=False, onerror=None)

功能:递归的删除文件,也可以删除目录

 

3、移动文件及目录

shutil.move(src, dst)

功能:递归的移动文件

 

4、压缩打包文件

shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)

功能:打包压缩文件

参数:
 base_name:压缩打包后的文件名或路径名
 
 format:压缩或者打包格式。例如:’zip’,’tar’, ‘bztar’, ‘gztar’
 
 root_dir:将哪个目录或文件压缩打包(也就是源文件)

示例:


import shutil
shutil.make_archive('result', 'gztar', root_dir='./lib')


https://www.cnblogs.com/Neroi/p/11758809.html

Python量化投资网携手4326手游为资深游戏玩家推荐:《《决战!平安京》:决战平安京:用传统的射手思维玩鸩,即使鸩加强了你也赢不了

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论