Me gustaría copiar los archivos que tienen una extensión de archivo específica a una nueva carpeta. Tengo una idea de cómo usar os.walk
, pero específicamente ¿cómo voy a usar eso? Estoy buscando los archivos con una extensión de archivo específica en una sola carpeta (esta carpeta tiene 2 subdirectorios, pero los archivos que estoy buscando nunca se encontrarán en estos 2 subdirectorios, así que no necesito buscar en estos subdirectorios) . Gracias por adelantado.¿Cómo copio archivos con una extensión de archivo específica a una carpeta en mi script python (versión 2.5)?
Respuesta
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)
Lea la documentation del módulo shutil para elegir la función que se adapte a sus necesidades (shutil.copy(), shutil.copy2() o shutil.copyfile()).
Esto recorrerá un árbol con subdirectorios. Puede hacer una comprobación os.path.isfile para que sea un poco más seguro.
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))
es un error usar '.lower()' en sistemas sensibles a mayúsculas y minúsculas (MS Windows es dominante pero no es un mundo entero). 'os.path.normcase (file)' es preferido en su lugar. – jfs
Si no está recurriendo, no necesita caminar().
La respuesta de Federico con glob está bien, asumiendo que no va a haber ningún directorio llamado 'something.ext'. De lo contrario tratar:
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)' before 'basename.endswith' podría ser útil (en Windows). – jfs
Aquí es una versión no recursiva con 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
Ejemplo:
copyfiles(".", "test", "*.ext")
Copiar archivos con extensión "extensión" de SRCDIR a 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. ¿Cómo obtener la lista de archivos con una extensión específica en una carpeta determinada?
- 2. Buscar recursivamente archivos con una extensión específica
- 3. ¿Cómo comprime el contenido de una carpeta usando python (versión 2.5)?
- 4. Compilación de vim con una versión específica de Python
- 5. ¿Por qué mi programa funciona con una extensión .py pero no con una extensión .pyw?
- 6. PowerShell Script para buscar y reemplazar todos los archivos con una extensión específica
- 7. Asignación de una carpeta específica a HttpHandler en web.config
- 8. Agregue automáticamente archivos a SVN dentro de una carpeta específica
- 9. Cómo copiar un archivo de una carpeta a otra carpeta
- 10. ./configure con una versión específica de g ++
- 11. ¿Cómo copio una imagen remota en python?
- 12. C# CF: Cómo abrir una extensión de archivo específica con mi programa
- 13. Buscar un archivo con una cierta extensión en la carpeta
- 14. Google Apps Script: ¿Cómo creo un archivo en una carpeta?
- 15. Git ¿Clonación a una carpeta específica?
- 16. ¿Cómo obtener una versión específica de un archivo en Mercurial?
- 17. cómo ejecutar easy_install usando una versión específica de python
- 18. Actualizar raíles a una versión específica
- 19. ¿Cómo obtengo una extensión de archivo específica para comportarme como si .html en un archivo .vimrc?
- 20. Cómo copio un archivo de una gema a mi aplicación de rieles usando rastrillo
- 21. ¿Cómo puedo enlazar a una versión específica de glibc?
- 22. ¿Cómo copio una carpeta y todas las subcarpetas y archivos en .NET?
- 23. ¿Cómo puedo descomprimir una carpeta específica?
- 24. descomprimir solo la extensión específica
- 25. ¿Puedo acceder a una propiedad desde mi manifest.json en los archivos JavaScript de mi extensión?
- 26. Ejecutar 4 instancias concurrentes de un script de python en una carpeta de archivos de datos
- 27. ¿Cómo puedo crear un archivo temporal con una extensión específica en bash?
- 28. Excluir una extensión de archivo en System.IO.Directory.GetFiles()
- 29. Cómo abro una ventana del explorador de Windows con una carpeta específica seleccionada
- 30. ¿Cómo necesito una versión específica de una gema de rubí?
@JF Sebastian: ¡Gracias por las mejoras! –