Je souhaite copier les fichiers ayant une extension de fichier spécifique dans un nouveau dossier. J'ai une idée comment utiliser os.walk
mais spécifiquement comment pourrais-je l'utiliser? Je recherche les fichiers avec une extension de fichier spécifique dans un seul dossier (ce dossier a 2 sous-répertoires mais les fichiers que je cherche ne seront jamais trouvés dans ces 2 sous-répertoires, donc je n'ai pas besoin de chercher dans ces sous-répertoires) . Merci d'avance.Comment copier des fichiers avec une extension de fichier spécifique dans un dossier de mon script python (version 2.5)?
Répondre
import glob, os, shutil
files = glob.iglob(os.path.join(source_dir, "*.ext"))
for file in files:
if os.path.isfile(file):
shutil.copy2(file, dest_dir)
Lire le documentation du module shutil de choisir la fonction qui correspond à vos besoins (shutil.copy(), shutil.copy2() ou shutil.copyfile()).
Ceci va marcher dans un arbre avec des sous-répertoires. Vous pouvez faire un contrôle os.path.isfile pour le rendre un peu plus sûr.
for root, dirs, files in os.walk(srcDir):
for file in files:
if file[-4:].lower() == '.jpg':
shutil.copy(os.path.join(root, file), os.path.join(dest, file))
c'est une erreur d'utiliser '.lower()' sur les systèmes sensibles à la casse (MS Windows est dominant mais ce n'est pas un monde entier). 'os.path.normcase (fichier)' est préféré à la place. – jfs
Si vous n'êtes pas récursif, vous n'avez pas besoin de walk().
La réponse de Federico avec glob est correcte, en supposant que vous n'allez pas avoir de répertoires appelés 'something.ext'. Sinon, essayez:
import os, shutil
for basename in os.listdir(srcdir):
if basename.endswith('.ext'):
pathname = os.path.join(srcdir, basename)
if os.path.isfile(pathname):
shutil.copy2(pathname, dstdir)
'basename = os.path.normcase (basename)' avant 'basename.endswith' pourrait être utile (sous Windows). – jfs
Voici une version non récurrente avec os.walk
:
import fnmatch, os, shutil
def copyfiles(srcdir, dstdir, filepattern):
def failed(exc):
raise exc
for dirpath, dirs, files in os.walk(srcdir, topdown=True, onerror=failed):
for file in fnmatch.filter(files, filepattern):
shutil.copy2(os.path.join(dirpath, file), dstdir)
break # no recursion
Exemple:
copyfiles(".", "test", "*.ext")
Copier les fichiers avec l'extension "extension" de SRCDIR à dstDir ...
import os, shutil, sys
srcDir = sys.argv[1]
dstDir = sys.argv[2]
extension = sys.argv[3]
print "Source Dir: ", srcDir, "\n", "Destination Dir: ",dstDir, "\n", "Extension: ", extension
for root, dirs, files in os.walk(srcDir):
for file_ in files:
if file_.endswith(extension):
shutil.copy(os.path.join(root, file_), os.path.join(dstDir, file_))
- 1. Rechercher dans le répertoire SVN pour les fichiers avec une extension de fichier spécifique et copier dans un autre dossier?
- 2. Comment puis-je obtenir mon script python (version 2.5) pour exécuter un fichier jar dans un dossier au lieu de la ligne de commande?
- 3. C# Copier un fichier dans un dossier avec des permissions
- 4. Copier des fichiers dans des répertoires comme spécifié dans une liste de fichiers avec python
- 5. cmake: Comment faire un script pour copier des fichiers de données accompagnant mon programme
- 6. Copier un fichier de ressources dans un dossier?
- 7. écrire un fichier btach pour copier des fichiers d'un dossier réseau vers un autre dossier réseau
- 8. Dossier avec extension
- 9. Afficher tous les noms de fichiers d'un dossier spécifique
- 10. Comment sélectionner des fichiers dans un dossier?
- 11. Retour des fichiers uniquement à partir du dossier spécifique
- 12. Événement WPF FileDrop: autorisez simplement une extension de fichier spécifique
- 13. Comment copier un fichier en Python avec une barre de progression?
- 14. Utilisation de CruiseControl pour copier le dossier SVN de la tête dans un dossier Release
- 15. Copier un fichier d'un dossier à un autre
- 16. php fichier/dossier treeview avec le script des descriptions?
- 17. Copier un fichier de modification avec File.Copy
- 18. Comment générer des données de test pour mon script Python?
- 19. Existe-t-il une variable Emacs pour désactiver la sauvegarde de fichiers avec une extension spécifique?
- 20. Python Script pour trouver des instances d'un ensemble de chaînes dans un ensemble de fichiers
- 21. Comment copier des fichiers avec Windows Batch?
- 22. Comment créer des fichiers ZIP avec un codage spécifique
- 23. comment faire un script copier-coller avec jcreator?
- 24. Structure des projets dans le contrôle de version - .NET spécifique
- 25. Comment avoir un 404 spécifique pour un dossier utilisant ASP.NET?
- 26. Extension de fichiers XSD
- 27. Comment installer avec distutils sur une installation Python spécifique?
- 28. Comment forcer iPython à utiliser une ancienne version de Python?
- 29. VIM: Utilisez Python 2.5 avec vim 7.2
- 30. trouver une chaîne dans un fichier gzippé dans un dossier
@JF Sebastian: Merci pour les améliorations! –