• python中shutil模块


    shutil是对OS中文件操作的补充:移动、复制、打包、压缩、解压。

    1.copy文件内容到另一个文件,可以copy指定大小的内容。

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

    # 注意!fsrc, fdst都是文件对象,需要打开后才能进行复制
    import shutil
    f1 = open('name', 'r')
    f2 = open('name_copy', 'w+')
    shutil.copyfileobj(f1, f2, length=16*1024)

    2.copyfileobj文件复制需要用open函数打开文件;copyfile不需要。

    shutil.copyfile(src, dst)

    # 一句话实现复制文件内容
    shutil.copyfile('name', 'name_copy_2')

    3.仅copy权限,不更改文件内容、组和用户。

    shutil.copymode(src, dst)

    # test1,test2文件存在,执行copymode不会出错
    >>> import shutil
    >>> shutil.copymode('test1', 'test2')
    # 目标文件不存在时会报错,此处test3文件不存在
    >>> shutil.copymode('test1', 'test3')
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/usr/local/python/lib/python3.4/shutil.py", line 132, in copymode
      chmod_func(dst, stat.S_IMODE(st.st_mode))
    FileNotFoundError: [Errno 2] No such file or directory: 'test233'

    4.复制所有的状态信息,包括权限,组,用户,时间等。

    shutil.copystat(src,dst)   

    5.复制文件的内容以及权限,先copyfile后copymode。

    shutil.copy(src,dst)  

    6.复制文件的内容以及文件的所有状态信息。先copyfile后copystat。

    shutil.copy2(src,dst)   

    7.递归的复制文件内容及状态信息。

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

    8.递归地删除文件。

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

    9.递归的移动文件。

    shutil.move(src, dst)   

    10.压缩打包。

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

  • 相关阅读:
    解决Hash冲突的几种方式
    深入理解JDK8中的HashMap
    JAVA中两个int类型的变量在不借助第三个变量的情况下完成值的互换
    Feign调用时读取超时(Read timed out executing GET)解决
    windows上Jenkins安装及其配置
    windows下查看端口被占用及处理
    flutter IOS模拟器无法弹出软键盘
    Android-ION内存管理简介
    移动GPU分类/百科
    ApiGen4.1 windows安装教程
  • 原文地址:https://www.cnblogs.com/keye/p/8315808.html
Copyright © 2020-2023  润新知