我的目标是复制文件夹到不同的位置,目录的结构是这样的,我有多个文件夹,其中有他们自己的子文件夹,我不想所有的子文件夹被复制,我只想其中一个特别的三个。你知道吗
我创建了一个字典,其中键是主文件夹的名称,值是我想要的三个文件夹的字典,其中键是我想要的文件夹类型,值是我想要复制的原始目录中的文件夹名称。你知道吗
看起来是这样的:
't0107': {'Arteirial': 'ARTERIAL THIN',
'Portal': '5mm portal',
'Venous': 'VENOUS THIN'},
't011': {'Arteirial': 'ARTERIAL THIN_0131',
'Portal': '5mm portal',
'Venous': 'VENOUS THIN'},
't0112': {'Arteirial': 'Thin Arterial Phase',
'Portal': 'Thin Portal Phase',
'Venous': 'Thin Venous Phase'},
't0113': {'Arteirial': 'Thin Arterial Phase',
'Portal': 'Thin Portal Phase',
'Venous': 'Thin Venous Phase'},
我想用shutil.copytree公司在我努力的地方完成这件事
def copytree(src, dst, symlinks=False,ignore = None):
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
shutil.copytree(s, d, symlinks, ignore)
else:
shutil.copy2(s, d)
path = '/media/username/ce162bb5-5654-4c36-9db2-55c7728ddb5a/CT/Anup/PhaseWise/'
for item in data_dict.keys():
copytree(str(path)+str(item)+'/'+data_dict[item]['Arteirial']+'/','/media/username/da5df9e4-cdc6-4d55-91e8-b2383e89165f/lion/'+str(item))
一切正常,欢迎您提出任何建议,提前谢谢
编辑: 代码正常,但有个问题
当目录因为我在循环中运行命令os.mkdir(dist_path+level1+level2)
而被复制到目标
并生成一个目录t004ARTERIAL THIN t004VENOUS THIN程序有没有办法首先生成t004目录
然后做动脉造影细静脉瘦等文件夹内,然后转移?你知道吗
root_path = "/media/username/ce162bb5-5654-4c36-9db2-55c7728ddb5a/LiverCT/Anup/PhaseWise/"
dist_path = "/media/username/da5df9e4-cdc6-4d55-91e8-b2383e89165f/lion/"
for level1,value1 in data_dict.items():
for level2, value2 in value1.items():
src_path = os.path.join(root_path,str(level1),str(value2))
os.mkdir(dist_path+level1+level2)
#print (src_path)
copytree(src_path,dist_path+level1+level2)
一些建议:
使用操作系统路径连接()替换字符串串联。
你知道吗shutil.copytree公司将所有文件夹和文件从源文件夹复制到dist文件夹。不用再打包了。
演示代码:
输出线:
相关问题 更多 >
编程相关推荐