python 复制文件夹内容 并结构一致_Python:如何将特定文件从一个位置复制到另一个位置并保持目录结构...

嗨,我正在努力使用一些python代码来将文件夹中的特定文件复制到另一个文件夹中,同时保持目录结构。在

我在学习,所以这段代码是用我找到的各种代码片段组合在一起的,我找不到任何与我的环境完全匹配的代码,而且我对python的理解还不足以理解我哪里出错了def filtered_copy(src_dir, dest_dir, filter):

print 'Copying files named ' + filter + ' in ' + src_dir + ' to ' + dest_dir

ignore_func = lambda d, files: [f for f in files if isfile(join(d, f)) and f != filter]

if os.path.exists(dest_dir):

print 'deleting existing data'

shutil.rmtree(dest_dir)

copytree(src_dir, dest_dir, ignore=ignore_func)

像这样执行这个代码

^{pr2}$

不跨我想要的文件进行复制,但不跨父文件夹(即src_dir)进行复制,因此我尝试实现的结果是:

c:\foldertocopyto\foldertosearch\设置.xml在

***编辑-为了澄清这是一个将在多个操作系统上使用的脚本

所以如果文件夹结构更复杂

父文件夹

-子文件夹

--子文件夹

----子子文件夹

------设置.xml在

我就跑了filtered_copy(subsubsubfolder, foldertocopyto, 'settings.xml')

我希望新的文件夹结构

foldertocopyto(此文件夹上方可能有多个父文件夹)

--子子文件夹

----设置.xml在

换言之,我在其中搜索特定文件的文件夹也应被复制,如果该文件夹已经存在,则应在复制文件夹和文件之前将其删除

我以为copytree()会完成这一部分,但显然不是!在

***编辑结束

***最新代码更改

这是可行的,但我确定这是一个冗长的方法,而且它复制空白文件夹,大概是因为copytree()的执行,我更喜欢被搜索的文件夹和过滤的文件。。。在def filtered_copy(src_dir, dest_dir, filter):

foldername = os.path.basename(os.path.normpath(src_dir))

print 'Copying files named ' + filter + ' in ' + src_dir + ' to ' + dest_dir + '/' + foldername

ignore_func = lambda d, files: [f for f in files if isfile(join(d, f)) and f != filter]

if os.path.exists(dest_dir + '/' + foldername):

print 'deleting existing data'

shutil.rmtree(dest_dir)

copytree(src_dir, dest_dir + '/' + foldername, ignore=ignore_func)

***最新代码更改结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值