• Day5模块-shutil模块


    参考博客:http://www.cnblogs.com/wupeiqi/articles/4963027.html

    shutil模块是高级的文件、文件夹、压缩处理的模块。比如文件的copy、压缩等。

    ------------------------------------------------------------------------------------------------------------------------

    1.shutil.copyfileobj(fsrc,fdst[,length]):将文件内容复制到另外一个文件中

    实例:复制文件内容到新文件中

    a.打开文件的方式去复制

    import shutil

    f1=open("random.py")   

    f2=open("random new.py","w")

    shutil.copyfileobj(f1,f2)

    b.不打开文件的方式去复制

    >>> import shutil

    >>> shutil.copy(r"c:提高.txt","test") #复制文件和权限

    'test'

    >>> shutil.copy2(r"c:提高.txt","test")  #复制文件和状态

    >>>shutil.copyfile(r"C:提高.txt","test") #复制文件

    区别:copy和copyfile都是复制文件,但copy复制了文件的属主属组,而copyfile却没有。

    ------------------------------------------------------------------------------------------------------------------------

    2.shutil.copytree(SRC,DST,symlinks=False,ignore=None) 递归的复制文件,也可以复制目录,相当于linux下的cp -r

    3.shutil.rmtree(path[,ignore_errors[,oneerror]]) 递归删除文件

    4.shutil.move(src,dst) 递归的移动文件

    5.shutil.make_archive(base_name,format,...) 创建压缩包并返回路径,例如zip、tar....

    * base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,  

    * 如:www                        =>保存至当前路径                                                         

    * 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/                                                          

    * format:压缩包种类,“zip”, “tar”, “bztar”,“gztar”                                            

    * root_dir:要压缩的文件夹路径(默认当前目录)                                                          

    * owner:用户,默认当前用户                                                                              

    * group:组,默认当前组                                                                                  

    * logger:用于记录日志,通常是logging.Logger对象                                                        

    实例1:

    #将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录                                           、

    import shutil                                                                                            

    ret = shutil.make_archive("wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')               

                                                                                                             

    #将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录                                   

    import shutil                                                                                            

    ret = shutil.make_archive("/Users/wupeiqi/wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')

    实例2:

    把D盘下的简历,打包成c盘下test.zip压缩包

    >>> import shutil                                                               

    >>> shutil.make_archive(r"c: est",format="zip",root_dir=r"D:简历")            

    'c:\test.zip'                                                                  

    shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:

     1 import zipfile
     2 
     3 # 压缩
     4 z = zipfile.ZipFile('laxi.zip', 'w')
     5 z.write('a.log')
     6 z.write('data.data')
     7 z.close()
     8 
     9 # 解压
    10 z = zipfile.ZipFile('laxi.zip', 'r')
    11 z.extractall()
    12 z.close()
    View Code
     1 import tarfile
     2 
     3 # 压缩
     4 tar = tarfile.open('your.tar','w')
     5 tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
     6 tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
     7 tar.close()
     8 
     9 # 解压
    10 tar = tarfile.open('your.tar','r')
    11 tar.extractall()  # 可设置解压地址
    12 tar.close()
    View Code
  • 相关阅读:
    在javaWeb 工程中 tomcat 的 web.xml 文件配置
    Spring 框架详解
    构建工具 Maven和Gradle对比
    idea 创建Javaweb 动态工程
    服务器后端 项目代码常用目录图
    ET模式下的EPOLLOUT
    linux recv 参数len设置为0
    fork 和 exec 对子进程继承父进程处理信号处理函数的影响
    lua元表以及元方法
    Linux网络编程“惊群”问题总结
  • 原文地址:https://www.cnblogs.com/wolfs685/p/6890847.html
Copyright © 2020-2023  润新知