假设我有以下目录结构:
C:\Test
C:\Test\2009
C:\Test\2009\files\Artists
C:\Test\2009\files\Artists\SnoopDog
C:\Test\2009\files\Artists\SnoopDog\albums.txt
C:\Test\2009\files\Artists\SnoopDog\albums.jpg
C:\Test\2009\files\Artists\SnoopDog\hobbies.doc
C:\Test\2009\files\Artists\SmashMouth\albums.txt
C:\Test\2009\files\Artists\SmashMouth\hobbies.doc
C:\Test\2010\files\Artists\SnoopDog\albums.txt
C:\Test\2010\files\Artists\SnoopDog\albums.jpg
C:\Test\2010\files\Artists\SnoopDog\hobbies.doc
以下是我想要作为目标的目录结构:
C:\ToDirectory\
C:\ToDirectory\2009\albums\SnoopDog_albums.txt
C:\ToDirectory\2009\albums\SnoopDog_albums.jpg
C:\ToDirectory\2009\albums\SmashMouth_albums.txt
C:\ToDirectory\2009\albums\SmashMouth_albums.jpg
C:\ToDirectory\2009\hobbies\SmashMouth_hobbies.doc
C:\ToDirectory\2009\hobbies\SnoopDog_hobbies.doc
C:\ToDirectory\2010\albums\SnoopDog_albums.txt
C:\ToDirectory\2010\albums\SnoopDog_albums.jpg
假设C:\Test
包含所有文件并且C:\ToDirectory
开始时是一个空目录。
拥有一个函数的最有效方法是什么,我只需给出它的源目录C:\Test
和目标目录ToDirectory
,脚本转到最低级别C:\Test
,遍历目录中的每个文件并检查文件名(忽略扩展名)是否是一个 duretiry在ToDirectory
结构中,如果没有,请创建它并将文件复制到其中,并在其名称的开头附加父目录并使用 python?
我在一系列下一个循环中使用 os.listdir 和 os.isdir ,但它似乎很长,虽然它可以工作,但似乎效率低下......