2011-07-15 33 views
7

Mam skrypt py, który przetwarza pliki z rozszerzeniem”.hgx'.Example: test.hgx (istnieje wiele takich pliki z rozszerzeniem HGX)Usuwanie określonych plików przy użyciu Pythona

Skrypt przetwarza test.hgx i tworzy nowy test_bac.hgx i po ponownym uruchomieniu tworzy test_bac_bac.hgx. Dlatego za każdym razem, gdy uruchamiasz skrypt, tworzy się plik z "_bac".

Czy istnieje jakieś rozwiązanie, które można używać w moim skryptu, który można usunąć wszystkie istniejące „_bac” oraz „_bac_bac ...” plików przed rozpoczęciem rzeczywistego kodu.

jestem już przy użyciu funkcji glob.glob

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

Czy mogę używać tej funkcji, aby usunąć te pliki 'X_bac.hgx' i inne pliki _bac_bac..hgx?

Każda pomoc/pomysł zostałby doceniony.

Dzięki

Odpowiedz

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

glob.glob("*_bac.hgx") będzie Ci pliki. Następnie możesz użyć funkcji os.remove, aby usunąć plik z pętli.

3

Bardzo podobne rozwiązanie byłoby

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

Ale poza tym, że nieco bardziej zwartą ekspresji, można zaoszczędzić jedną nazwę zmiennej w bieżącym obszarze nazw.

+0

W Pythonie 3, musisz wtedy _wydrzec_ generator zwrócony przez 'map', prawdopodobnie przez zamianę go na' list'. – uckelman

Powiązane problemy