zoukankan      html  css  js  c++  java
  • Python shutil模块(目录和文件操作)

    import shutil  #导入shutil模块

    copyfileobj方法

    将类文件对象fsrc的内容复制到类文件对象fdst

    shutil.copyfileobj(fsrc, fdst[, length]) 

    我一般的用法:

    shutil.copyfileobj(open('file','r'),open('file','w'))

    注:如果fsrc对象的当前文件位置不为0,那么将只复制从当前文件位置到文件末尾的内容

    copyfile方法

    将名为src的文件的内容复制到名为dst的文件中,并返回dst。src和dst是作为字符串给出的路径名

    shutil.copyfile(src,dst,*,follow_symlinks=True)

    目标位置必须是可写的。否则将引发OSError异常。如果dst已存在,它将被替换。

    如果follow_symlinks为false,并且src是一个符号链接,那么将创建一个新的符号链接,而不是复制文件src指向(这是python文档里直接有道翻译出来的,我也没看懂是啥意思。学的还是太浅了········)

    copymode方法

    拷贝权限,文件内容、所有者和组不受影响。

    shutil.copymode(src,dst,*,follow_symlinks=True)

    src和dst是作为字符串给出的路径名

    copystat方法

    将权限位、最后访问时间、最后修改时间和标记从src复制到dst

    shutil.copystat(src,dst,*,follow_symlinks=True)

    copy方法

    将文件src复制到文件或目录dst

    shutil.copy(src,dst,*,follow_symlinks=True)

    src和dst都是字符串,一般用法如下:

    shutil.copy(r'要复制的文件路径(路径+文件)',r'复制到的路径')

    注:要复制到的路径是存在的才行,不存在该路径会报错。

    copy2方法

    与copy()方法相同,只是copy2()还试图保存所有文件元数据。

    shutil.copy2(src, dst, *, follow_symlinks=True)

     copytree方法

    递归的复制文件,该方法可以理解为复制电脑上某个文件夹以及文件夹内的东西到另一个文件夹

    shutil.copytree(src,dst,ignore=None)

    其中dst的路径的最后一级必须是不存在的。如:D: ools 这里的tools这个文件夹必须是不存在的。由python创建。

    这里的ignore参数需要结合下列方式

    shutil.ignore_patterns(*patterns)

    我的理解就是需要忽视的文件的模式。用法如下:

    shutil.copytree(src,dst,ignore=ignore_patterns('*.py'))

    这里的意思就是把 src目录下的文件都复制到 dst 目录下但是忽略掉 .py 文件。

     注:这里要先定义一个需要忽略的文件的模式

    如:

    1 a=shutil.ignore_patterns('*.py')
    2 shutil.copytree(src,dst,ignore=a)

     rmtree方法

    shutil.rmtree(path)

    递归的形式删除 path 目录,以及目录下的所有文件

    move方法

    shutil.move(src,dst)

    递归的形式移动 src 到 dst

    如果dst是个现有的目录 python 会将src移动到dst内 ,dst如果是个不存在的目录 会调用os.ename 来改名字移动到目标位置。(应该是吧。我用的时候这个老报错,移动是移动过去了,结果原文件还在,也是很奇怪。)

    正在学习中······,学到新的东西会来修改或更新。

  • 相关阅读:
    Vue之axios基础使用
    Vue + Spring Boot 项目实战(二):使用 CLI 搭建 Vue.js 项目
    解决:'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    CentOS root用户修改只读文件时提示加! 解决办法
    CentOS 7 源码编译安装 Redis
    CentOS安装Jdk并配置环境变量
    Vue + Spring Boot 项目实战(一):项目简介
    druid 数据源 使用属性文件的一个坑
    scala 学习笔记(07) 一等公民的函数
    linux:手动校准系统时间和硬件CMOS时间
  • 原文地址:https://www.cnblogs.com/zhx-blog/p/9732873.html
Copyright © 2011-2022 走看看