2011-07-15 13 views
7

Ho uno script py che elabora i file con estensione' .hgx'.Example: test.hgx (ci sono molti di questi file con estensione HGX)Eliminazione di determinati file utilizzando python

Lo script elabora i test.hgx e crea un nuovo test_bac.hgx e, rieseguendolo, crea test_bac_bac.hgx. Quindi, ogni volta che si esegue lo script, viene creato un file con "_bac".

C'è qualche soluzione che posso usare nel mio script che può eliminare tutti i '_bac' esistente e '_bac_bac ...' file prima dell'inizio del codice vero e proprio.

Sono già usando la funzione glob.glob

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

Posso usare questa funzione per eliminare questi file 'X_bac.hgx' e altri file _bac_bac..hgx?

Qualsiasi aiuto/idea sarebbe apprezzato.

Grazie

risposta

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

glob.glob("*_bac.hgx") ti porterà i file. È quindi possibile utilizzare la funzione os.remove per eliminare il file nel loop.

3

Una soluzione molto simile sarebbe

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

Ma oltre ad avere un'espressione un po 'più compatto, si risparmia un nome di variabile nel namespace corrente.

+0

In Python 3, è necessario quindi _invoke_ il generatore restituito da 'map', possibilmente trasformandolo in un' elenco'. – uckelman

Problemi correlati