2011-07-15 8 views
7

Tengo un script py que procesa los archivos con extensión' .hgx'.Example: test.hgx (hay muchos de estos archivos con la extensión hgx)Eliminación de ciertos archivos usando Python

El script procesa la test.hgx y crea un nuevo test_bac.hgx y al volver a ejecutar crea test_bac_bac.hgx. Por lo tanto, cada vez que ejecuta la secuencia de comandos crea un archivo con '_bac'.

¿Hay alguna solución que puedo usar en mi script que puede eliminar toda la '_bac' existente y '_bac_bac ...' archivos antes de inicio del código real.

ya estoy usando la función glob.glob

for hgx in glob.glob("*.hgx"): 

¿Puedo utilizar esta función para eliminar estos archivos 'X_bac.hgx' y otros archivos _bac_bac..hgx?

Cualquier ayuda/idea sería apreciada.

Gracias

Respuesta

19
import os 
import glob 
for hgx in glob.glob("*_bac.hgx"): 
    os.remove(hgx) 
1

glob.glob("*_bac.hgx") le conseguirán los archivos. Luego puede usar la función os.remove para eliminar el archivo en su ciclo.

3

Una solución muy similar sería

import os 
import glob 
map(os.remove, glob.glob("*_back.hgx")) 

Pero además de tener una expresión un poco más compacto, se ahorra un nombre de variable en el espacio de nombres actual.

+0

En Python 3, necesita _invocar_ el generador devuelto por 'map', posiblemente convirtiéndolo en una' lista'. – uckelman

Cuestiones relacionadas