Python实现按路径结构复制指定文件夹及文件的高效方案问询
高效复制特定路径结构下的指定文件方案
当然有更高效的方案!不用手动逐个创建目录,Windows原生工具Robocopy或者PowerShell脚本就能一次性搞定你的需求,完美匹配你的路径保留和文件筛选要求。
需求回顾
源路径结构示例(2018年全年日期目录):
Z:\Archived\2018\2018_01_01\BOM_Archived\A.nc.gz Z:\Archived\2018\2018_01_01\BOM_Archived\B.nc.gz Z:\Archived\2018\2018_01_01\BOM_Archived\C.nc.gz Z:\Archived\2018\2018_01_01\other files and folders ... Z:\Archived\2018\2018_12_31\BOM_Archived\A.nc.gz Z:\Archived\2018\2018_12_31\BOM_Archived\B.nc.gz Z:\Archived\2018\2018_12_31\BOM_Archived\C.nc.gz Z:\Archived\2018\2018_12_31\other files and folders目标:将每个日期目录下的
BOM_Archived文件夹及其内的A.nc.gz、B.nc.gz、C.nc.gz文件复制到V:\Historical_BOM_Raw\,保留原有路径结构,不复制其他文件/文件夹。
方案1:Robocopy(Windows原生,最推荐)
Robocopy是Windows自带的高级复制工具,专门针对批量文件复制、路径保留和筛选场景,完全不需要手动创建目录,一行命令就能搞定。
执行命令(管理员身份打开CMD/PowerShell)
robocopy "Z:\Archived\2018" "V:\Historical_BOM_Raw\2018" /E /XF * /XD * /IF A.nc.gz B.nc.gz C.nc.gz /NP
参数解释(关键部分):
/E:复制所有子目录(包括空目录),确保完整保留日期和BOM_Archived的路径结构/XF *:默认排除所有文件,后续通过/IF精准指定要复制的文件/XD *:默认排除所有目录,仅保留包含目标文件的BOM_Archived及上层目录/IF A.nc.gz B.nc.gz C.nc.gz:仅包含这三个指定文件,Robocopy会自动追踪它们的路径结构/NP:不显示复制进度(可选,去掉即可看到实时进度)
验证命令(先预览不实际复制)
如果担心出错,可以先加/L参数,仅列出要复制的内容:
robocopy "Z:\Archived\2018" "V:\Historical_BOM_Raw\2018" /E /XF * /XD * /IF A.nc.gz B.nc.gz C.nc.gz /L /NP
方案2:PowerShell脚本(灵活定制)
如果你习惯用PowerShell,这个脚本可以实现同样的效果,还能根据需要扩展筛选规则:
# 定义源和目标根目录 $sourceRoot = "Z:\Archived\2018" $targetRoot = "V:\Historical_BOM_Raw\2018" # 查找并复制符合条件的文件 Get-ChildItem -Path $sourceRoot -Recurse -Include "A.nc.gz", "B.nc.gz", "C.nc.gz" | Where-Object { $_.Directory.Name -eq "BOM_Archived" } | ForEach-Object { # 构建目标路径,自动替换根目录前缀 $targetPath = $_.FullName.Replace($sourceRoot, $targetRoot) # 自动创建目标目录(不存在则创建) New-Item -ItemType Directory -Path (Split-Path $targetPath -Parent) -Force | Out-Null # 复制文件 Copy-Item -Path $_.FullName -Destination $targetPath -Force }
脚本逻辑:
- 递归查找源目录下的三个指定文件
- 过滤出仅位于
BOM_Archived文件夹内的文件 - 自动生成对应的目标路径
- 按需创建目标目录结构
- 复制文件到目标位置
这两个方案都比手动创建目录复制高效得多,Robocopy性能更优适合大规模文件复制,PowerShell则更灵活适合需要定制逻辑的场景。
内容的提问来源于stack exchange,提问作者alextc
相关产品推荐
相关产品推荐

