吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1546|回复: 10
收起左侧

[求助] python怎么复制文件夹而忽略某些特定的文件

[复制链接]
本路人 发表于 2022-3-25 12:53
RT,我想实现复制某个文件夹及其子文件夹的内容到一个新的地址,但是要忽略某些指定的文件,
有一个文件夹data,一份要忽略的文件夹列表文件split.txt(内容大概是{data/jpg/1.jpg, data/jpg2/2.jpg......})成千上万个文件
我本来是打算用shutil.copytree实现的,比如
def get_ignored(path, files):
  ......
  return ret #如{data/jpg/1.jpg, data/jpg2/2.jpg...}
shutil.copytree(src_path, tar_path, ignore=get_ignored)
但是可能是因为生成的忽略数组只有文件名没有文件夹目录结构,所以最后还是没有实现我想要的功能,
请问应该怎么实现?要先把那些各层的目录也从split.txt提取出来放到忽略列表里面吗

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2022-3-25 13:12
有那么麻烦吗 全复制过来,再枚举你忽略的文件直接删除不好么
 楼主| 本路人 发表于 2022-3-25 13:31
bester 发表于 2022-3-25 13:12
有那么麻烦吗 全复制过来,再枚举你忽略的文件直接删除不好么

太大了,那个文件夹超过2g,而且要时不时执行
cxx313120919 发表于 2022-3-25 13:42
遍历要复制的文件夹 然后 在复制之前 吧文件名拿着去  split.txt 数组 模糊查询 有就跳过
luyers 发表于 2022-3-25 13:42
遍历目标文件夹 及其子文件夹 剔除要忽略的文件 复制到新路径
tencentma 发表于 2022-3-25 13:45
cxx313120919 发表于 2022-3-25 13:42
遍历要复制的文件夹 然后 在复制之前 吧文件名拿着去  split.txt 数组 模糊查询 有就跳过

我觉得可以先遍历
 楼主| 本路人 发表于 2022-3-25 13:56
tencentma 发表于 2022-3-25 13:45
我觉得可以先遍历

主要还是文件夹比较大,而且有10万个零碎的文件,时常更新,每次执行一次就遍历有点太耗时了。之前想过生成一个比对文件,更新后就按比对文件只复制跟更新对应的新文件,但是这执行起来有点繁琐
 楼主| 本路人 发表于 2022-3-25 14:57
最后还是选择用xcopy来做了
amorous_pp 发表于 2022-3-25 15:17
本帖最后由 amorous_pp 于 2022-3-25 15:18 编辑

用 rsync  复制,  rsync   folder1  --exclude-from=split.txt folder2

免费评分

参与人数 1热心值 +1 收起 理由
netspirit + 1 感谢您的宝贵建议,我们会努力争取做得更好!

查看全部评分

yp17792351859 发表于 2022-4-7 16:36
递归,只复制需要的文件夹和文件
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表