2-shutil模块

作者: 撸撸很乖张 | 来源:发表于2018-10-02 16:34 被阅读0次

    shutil模块主要是对文件的高级操作,以及压缩文件等的操作,我们下来先来看该模块的主要方法,以及

    该模块的详细的信息介绍,见操作的代码:

    import shutil
    
    print dir(shutil)
    print type(help(shutil))
    

    下面我们详细的来看shutil模块的常用的方法,以及依据具体的案例,来进行操作,我们先来看把文件内容复制到另外一个文件,实现文件内容的复制,具体就是我们把config文件夹下的config.ini文件内容复制到log文件夹下的log.md,见实现的代码:

    import shutil
    import  os
    
    #实现读取一个文件内容然后复制到另外一个文件
    if os.path.exists(os.path.join(os.path.dirname(__file__),'log','log.md')):
        shutil.copyfileobj(open(os.path.join(os.path.dirname(__file__),'config','config.ini'),'r'),
                           open(os.path.join(os.path.dirname(__file__),'log','log.md'),'w'))
    

    执行代码之后,就会实现文件内容的复制。下来我们来实现copy文件,就是把config文件夹下的config.ini文件copy到log的文件夹,见实现的代码:

    import shutil
    import  os
    
    #实现读取一个文件内容然后复制到另外一个文件
    if os.path.exists(os.path.join(os.path.dirname(__file__),'log','config.ini')):
        print u'config.ini文件已存在log文件夹目录,不需要copy'
    else:
        shutil.copyfile(os.path.join(os.path.dirname(__file__),'config','config.ini'),
                        os.path.join(os.path.dirname(__file__),'log','config.ini'))
    

    注释:实现把一个文件从一个目录复制到另外一个文件,也包含了文件内容的,也就是说,copy到新的目录下的文件内容和之前的文件内容一致。其他常用的方法见如下的代码:

    import shutil
    import  os
    
    #拷贝文件和权限
    shutil.copy('db.ini','c:/log.db')
    
    #仅拷贝权限,内容,组,用户均不会变,不会拷贝文件内容
    shutil.copymode('db.ini','')
    
    
    #拷贝状态的信息,包括:moded bits,atime,mtime,flags
    shutil.copystat()
    
    #拷贝文件和状态信息
    shutil.copy2()
    
    #拷贝文件夹
    shutil.copytree('folder1','folder2',ignore=shutil.ignore_patterns('*.py'))
    
    #递归删除文件
    shutil.rmtree()
    
    #重命名文件
    shutil.move()
    

    见创建压缩包的程序,见实现的代码:

    import shutil
    import  os
    
    #创建文件压缩包并返回路径
    shutil.make_archive('filename','gztar',root_dir=os.path.dirname(__file__))
    
    

    相关文章

      网友评论

        本文标题:2-shutil模块

        本文链接:https://www.haomeiwen.com/subject/qxkaoftx.html