您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

Python之shutil模块

来源:网络整理 浏览:216次 时间:2020-08-12

对比os模块的函数和shutil模块中包含的函数,会发现它们有一些重复。那么为什么会存在两个模块提供相同功能的情况呢?这就涉及到了标准库模块的定位问题了。os模块是对操作系统的接口进行封装,主要作用是跨平台,shutil模块包含复制、移动、重命名、删除文件目录以及压缩包的函数,主要作用是管理文件和目录,因此它们并不冲突,并且是互补的关系,对于常见的文件操作,shutil更易于使用。在shutil里面没有提供相应功能的情况下再使用os模块下的函数。

博文大纲:

  • 1、复制文件
  • 2、复制目录
  • 3、移动目录或文件(重命名)
  • 4、删除目录
  • 5、更改属主及属组
  • 6、查找命令绝对路径
  • 7、获取磁盘使用空间
  • 8、归档和解包
1、复制文件
shutil.copy('src','dst') 
2、复制目录
shutil.copytree('src','dst')
3、移动目录或文件(重命名)
shutil.move('src','dst')
4、删除目录
shutil.rmtree('path')
5、更改属主及属组
shutil.chown('path','user','group') 
6、查找命令绝对路径
shutil.which('cmd') 
7、获取磁盘使用空间
total, used, free = shutil.disk_usage("path")print("当前磁盘共: %iGB, 已使用: %iGB, 剩余: %iGB"%(total / 1073741824, used / 1073741824, free / 1073741824))

注:默认单位是字节,所以转换为了GB,公式如下:
1KB= 1024字节,1MB= 1024KB,1GB= 1024MB; 所以:1G=1073741824字节。也就是上面为什么要除以1073741824

8、归档和解包1)获取当前系统支持的解包文件格式(后缀)
shutil.get_unpack_formats()                          
2)获取当前系统支持的压缩文件格式(后缀)
shutil.get_archive_formats()
3)归档压缩
shutil.make_archive('test','gztar','./')    #将当前目录下所有文件打包为test.tar.gz

参数解释如下(从左往右开始):

  • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径。 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
  • gztar: 压缩包种类,可选值有:“zip”, “tar”, “bztar”,“gztar”
  • ./: 要压缩的文件夹路径(默认当前目录)
4)解档压缩
shutil.unpack_archive(filename,extract_dir=None,format=None)# 栗子:shutil.unpack_archive('test.tar.gz','/opt/tlv')
  • filename:文件路径;
  • extract_dir:解压至的文件夹路径。文件夹可以不存在,会自动生成;
  • format:解压格式,默认为None,会根据扩展名自动选择解压格式。

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com