• python-shutil 模块


    文件处理的高阶用法

    拷贝文件、删除文件、拷贝目录、删除目录、可以带权限、压缩、归档

    import shutil
    # 将文件内容拷贝到另一个文件中,可以部分内容
    
    f1_p = 'shave_test.py'
    f2_p = 'shave_test_new.py'
    f1 = open(f1_p, 'r')
    f2 = open(f2_p, 'w')
    shutil.copyfileobj(f1, f2, length=5)   # 每次读多少直接读完
    
    
    #不用打开直接拷贝文件
    f3_p = 'shave_test.py'
    f4_p = 'shave_test_new.py'
    shutil.copyfile(f3_p, f4_p)
    
    #仅拷贝权限。内容、组、用户均不变
    f5_p = 'shave_test.py'
    f6_p = 'shave_test_new.py'
    shutil.copymode(f5_p, f6_p)
    
    #拷贝状态的信息,包括:mode bits, atime, mtime, flags
    f7_p = 'shave_test.py'
    f8_p = 'shave_test_new.py'
    shutil.copymode(f7_p, f6_8)
    
    # 拷贝文件和权限
    src = 'shave_test.py'
    dst = 'shave_test_new.py'
    shutil.copy(src, dst)
    
    #递归的去拷贝文件
    src = 'packages'
    dst = 'package2'
    # shutil.copytree(src, dst, symlinks=False, ignore=None)
    #ignore 可以忽略调某些文件
    shutil.copytree(src, dst, symlinks=False, ignore=shutil.ignore_patterns('__init__.py'))
    #递归的去删除文件
    pth = 'package3'
    shutil.rmtree(pth)
    
    #递归的去移动文件
    src = 'package4'
    dst = 'package'
    shutil.move(src, dst)  # 类似文件剪切,源路径不存在则报错
    
    
    #创建压缩包并返回文件路径,例如:zip、tar
    # 如:abc                        =>保存至当前路径
    #     如:/Users/123/abc =>保存至/Users/123/
    #     format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
    #     root_dir: 要压缩的文件夹路径(默认当前目录)
    #     owner: 用户,默认当前用户
    #     group: 组,默认当前组
    #     logger: 用于记录日志,通常是logging.Logger对象
    base_name = 'abc'
    shutil.make_archive(base_name, 'zip', 'proj')  # 把proj文件压缩为abc.zip压缩包
    
    
    import zipfile
    
    # 压缩
    z = zipfile.ZipFile('proj.zip', 'w')
    z.write('__init__.py')
    z.write('manage.py')
    z.close()
    
    # 解压
    z = zipfile.ZipFile('proj.zip', 'r')
    z.extractall('proj2')  # 设置解压路径
    z.close()
    
    import tarfile
    
    # # 压缩(可递归式压缩)
    tar = tarfile.open('your.tar', 'w')
    tar.add("/Users/Administrator/OneDrive/python/python_21/第4课/proj")  # 递归式压缩,前面路径都生成了
    # tar.add("/Users/Administrator/OneDrive/python/python_21/第4课/proj", arcname='proj1.zip') #只生成proj1.zip文件夹
    tar.add("/Users/Administrator/OneDrive/python/python_21/第4课/manage.py", arcname='manage.zip')
    # tar.close()
    
    # 解压
    tar = tarfile.open('your.tar', 'r')
    tar.extractall('test2')  # 可设置解压地址
    tar.close()
  • 相关阅读:
    超级楼梯
    超级楼梯
    母牛的故事
    母牛的故事
    蟠桃记
    蟠桃记
    Children’s Queue
    Children’s Queue
    http://202.194.116.8/webapps/portal/frameset.jsp?tab_id=_2_1&url=%2fwebapps%2fblackboard%2fexecute%2
    Matlab位运算笔记
  • 原文地址:https://www.cnblogs.com/AYxing/p/8666950.html
Copyright © 2020-2023  润新知