源代码结构如下:
Z:\Archived\2018\2018_01_01\BOM_Archived\A.nc.gz
...........................\BOM_Archived\B.nc.gz
...........................\BOM_Archived\C.nc.gz
...........................\other files and folders
Z:\Archived\2018\2018_01_02\BOM_Archived\A.nc.gz
...........................\BOM_Archived\B.nc.gz
...........................\BOM_Archived\C.nc.gz
...........................\other files and folders
Z:\Archived\2018\2018_01_03\BOM_Archived\A.nc.gz
...........................\BOM_Archived\B.nc.gz
...........................\BOM_Archived\C.nc.gz
...........................\other files and folders
...
...
...
Z:\Archived\2018\2018_12_31\BOM_Archived\A.nc.gz
...........................\BOM_Archived\B.nc.gz
...........................\BOM_Archived\C.nc.gz
...........................\other files and folders
我只需要将每个日期的整个BOM_Archive文件夹及其包含的A.nc.gz,B.nc.gz和C.nc.gz文件复制到:
V:\Historical_BOM_Raw\
并保持路径结构。不应复制“ \其他文件和文件夹”。
V:\Historical_BOM_Raw\2018\2018_01_01\BOM_Archived\A.nc.gz
..................................................\B.nc.gz
..................................................\C.nc.gz
V:\Historical_BOM_Raw\2018\2018_01_02\BOM_Archived\A.nc.gz
..................................................\B.nc.gz
..................................................\C.nc.gz
...
...
V:\Historical_BOM_Raw\2018\2018_12_31\BOM_Archived\A.nc.gz
..................................................\B.nc.gz
..................................................\C.nc.gz
我正在考虑每次创建一个日期文件夹并从源文件夹复制文件,但这应该是一种更有效的方法吗?
最佳答案
import shutil
shutil.copytree("Z:/Archived/", "V:/Historical_BOM_Raw/")
Shutil存在一些文件元数据问题。如果您需要这些,则可以考虑另一种选择。更多:https://docs.python.org/3/library/shutil.html
编辑:
import os
import shutil
def listdir_fullpath(d): # Get full path instead of folder name
return [os.path.join(d, f) for f in os.listdir(d)]
for year in listdir_fullpath("Z:/Archived"):
for date in listdir_fullpath(year):
for folder in listdir_fullpath(date):
if folder[-12:] == "BOM_Archived":
newdir = os.path.join("V:/Historical_BOM_Raw/",date.replace("Z:/Archived/", ""))
shutil.copytree(folder, newdir)
关于python - Python-将完整路径复制到目标文件夹并保留路径结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58463405/