Python 把指定文件夹及其所有子文件夹下的文件汇总到一个文件夹下 |
您所在的位置:网站首页 › 把多个文件夹中的文件提取到一个文件夹中 › Python 把指定文件夹及其所有子文件夹下的文件汇总到一个文件夹下 |
前言
有个需求,需要把指定文件夹下的所有Excel文件拷贝到一起,重名的文件需重命名,不能覆盖。 为实现需求,需用到os和shutil模块。 os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。shutil 模块提供了一系列对文件和文件集合的高阶操作。 特别是提供了一些支持文件拷贝和删除的函数。 os.walk()介绍 os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])参数 top 是所要遍历的文件夹的地址topdown 可选,为True(默认为开启),则优先遍历top目录,否则优先遍历top的子目录。如果topdown参数为True,walk会遍历top文件夹与top文件夹中每一个子目录。onerror 可选,需要一个callable对象,当walk需要异常时,会调用。followlinks 可选,如果为True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。返回值 返回的是一个三元组(root,dirs,files) root 是当前正在遍历的这个文件夹的地址dirs 是一个 list ,内容是该文件夹中所有的「子文件夹」的名称(不包括子目录)files 同样是 list , 内容是该文件夹中所有的「文件」的名称(不包括子目录) shutil.copy()介绍shutil.copy(src, dst, *, follow_symlinks=True) 功能 将文件 src 拷贝到文件或目录 dst。 src 和 dst 应为 路径类对象 或字符串。 如果 dst 指定了一个目录,文件将使用 src 中的基准文件名拷贝到 dst 中。 将返回新创建文件所对应的路径。如果 follow_symlinks 为假值且 src 为符号链接,则 dst 也将被创建为符号链接。 如果 follow_symlinks 为真值且 src 为符号链接,dst 将成为 src 所指向的文件的一个副本。copy() 会拷贝文件数据和文件的权限模式 (参见 os.chmod())。 其他元数据,例如文件的创建和修改时间不会被保留。 执行结果示例 功能介绍 类似于 copy(),区别在于 copy2() 还会尝试保留文件的元数据。当 follow_symlinks 为假值且 src 为符号链接时,copy2() 会尝试将来自 src 符号链接的所有元数据拷贝到新创建的 dst 符号链接。 但是,此功能不是在所有平台上均可用。 在此功能部分或全部不可用的平台上,copy2() 将尽量保留所有元数据;copy2() 一定不会由于无法保留文件元数据而引发异常。copy2() 会使用 copystat() 来拷贝文件元数据。copy2()执行结果示例 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |