Python récursif trouver des fichiers et passer à un répertoire de destination
Question
Le script doit passer par récursivement par le répertoire RootPath et trouver tous les fichiers avec une extension * .mp4. Imprimez la liste des fichiers avec la structure du répertoire. Déplacez ensuite les fichiers vers le répertoire destdir. Le problème que je rencontre est lors de l'essaie de déplacer les fichiers vers le nouveau répertoire. Seuls les fichiers du répertoire RootPath seront déplacés vers la nouvelle destination. Les fichiers dans les sous-répertoires sous RootPath provoquent des erreurs:
/Volumes/VoigtKampff/Temp/TEST/level01_test.mp4
/Volumes/VoigtKampff/Temp/TEST/Destination/2levelstest02.mp4
Traceback (most recent call last):
File "/Volumes/HomeFolders/idmo04/Desktop/ScriptsLibrary/Python/recursive_find.py", line 14, in <module>
shutil.move(root+filename, destDir+'/'+filename)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/shutil.py", line 281, in move
copy2(src, real_dst)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/shutil.py", line 110, in copy2
copyfile(src, dst)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/shutil.py", line 65, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/Volumes/VoigtKampff/Temp/TEST/Destination2levelstest02.mp4'
############## Voici le scriptimport fnmatch
import os
import shutil
rootPath = '/Volumes/VoigtKampff/Temp/TEST/'
destDir = '/Volumes/VoigtKampff/Temp/TEST2/'
matches = []
for root, dirnames, filenames in os.walk(rootPath):
for filename in fnmatch.filter(filenames, '*.mp4'):
matches.append(os.path.join(root, filename))
print(os.path.join(root, filename))
shutil.move(root+filename, destDir+'/'+filename)
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow