次のディレクトリ構造があるとします。
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
移動し、ディレクトリ内の各ファイルを調べて、ファイル名 (拡張子を無視) が durectiry であるかどうかをチェックする関数を持つ最も効率的な方法は何ですか?そうでない場合は、ToDirectory
構造内でそれを作成し、その名前の先頭に親ディレクトリを python で追加してファイルをコピーしますか?
次の一連のループで os.listdir と os.isdir を使用していますが、非常に長く見え、機能しますが、非効率的です...