[PIPython] cercare un file...

Gian Mario Tagliaretti liquid
Ven 19 Nov 2004 15:16:47 CET


On Wednesday 21 July 2004 00:57, MM wrote:

come già ti hanno detto l'errore sta nell'identazione.

> quello che vorrei ottenere io, è l'equivalente di:
>
> % find /percorso -name "*partedelnome*" -exec qualchecomando {} \;
>
> per esempio:
>
> % find /etc -name "*.conf" -exec cp {} /backup \;
>

Per ottenere questo risultato puoi fare

#!/usr/bin/env python

from os import walk
import os.path
import shutil

if not os.path.isdir("/backup"):
	os.mkdir("/backup", 384)

for root, dirs, files in walk('/'):
	for filename in files:
		if ".conf" in filename:
			abspath = os.path.join(root, filename)
			shutil.copy2(abspath, "/backup")

ci sono però un paio di problemini:

1) se il file nella directory backup già esiste viene sovrascritto, durante la 
scansione del disco può capitare che ci siano 2 file con lo stesso nome.
Ovviamente è risolvibile aggiungendo dei controlli o mettendo delle 
sottodirectory in /backup

2) if ".conf" in filename ti prende anche i files che si chiamano ad 
esempio .config oppure .conf.pippo, pre prendere solo i .conf "forse" si 
torna al discorso delle regexp (posso sbagliarmi)

ciao
GMTaglia



More information about the Python mailing list