Windows XP crea automaticamente un file, chiamato Thumbs.db, in tutte le cartelle che visita per salvarne la visualizzazione (dettagli, anteprima, etc.). La stessa cosa fa OSX, creando addirittura (!) una cartella dal nome .DS_Store, contenente gli stessi attributi.

Stanco di avere il mio hard disk pieno di questi file (in Vista la gestione di questi file è intelligentemente centralizzata), ho creato uno script Python che analizza ricorsivamente una directory (specificata dall’utente) e stampa tutte le posizioni di questi file e directory indesiderati.image thumb Python: uno script per eliminare i file Thumbs.db e le cartelle .DS Store

Lo script richiede esattamente due argomenti: il path da cui si vuole iniziare ad analizzare ricorsivamente la presenza di file e directory indesiderate, e una stringa che conferma l’azione: nel caso in cui l’opzione sia delete, lo script cancella i file desiderati, altrimenti stamperà soltanto le loro posizioni.

Esempio:

python recursiveDeleteUnwantedFilesAndDir.py C:\ print

stampa la posizione dei i files/directory indesiderati

python recursiveDeleteUnwantedFilesAndDir.py C:\ delete

stampa la posizione dei i files/directory indesiderati e li elimina dal disco

Veniamo al codice sorgente:

import os
import sys

def recursiveDeleteUnwantedFilesAndDir(path,action):
	for root, dirs, files in os.walk(path):
		for name in files:
			if name == 'Thumbs.db':
				print os.path.join(str(root),str(name))
				if action == 'delete':
					os.remove(os.path.join(str(root),str(name)))
		for name in dirs:
			if name == '.DS_Store':
				print os.path.join(str(root),str(name))
				if action == 'delete':
					os.removedirs(os.path.join(str(root),str(name)))

recursiveDeleteUnwantedFilesAndDir(sys.argv[1],sys.argv[2])

Per scaricare lo script: recursiveDeleteUnwantedFilesAndDir.zip

Popularity: 1%

  • Share/Bookmark

Related posts:

  1. Linux: come installare Java Media Framework (JMF) evitando l’errore “tail: cannot open `+309′ for reading: No such file or directory” Ultimamente ho dovuto installare il Java Media Framework di Sun....
  2. VMware: come risolvere il problema “this machine appears to be in use” Se VMware non vi permette di avviare una macchina virtuale...
  3. Come fare il resume di un trasferimento fatto con scp Per quanto riguarda i trasferimenti di files tra servers UNIX,...
  4. Apache: bloccare determinati IP usando .htaccess Se il vostro hosting vi fornisce una piattaforma Apache, allora...
  5. 10 cose da fare dopo aver installato Ubuntu Intrepid 8.10 Ultimamente ho reinstallato Linux sulla mia macchina principale, dopo anni...

Tags: , , , ,
7 Responses to “Python: uno script per eliminare i file Thumbs.db e le cartelle .DS_Store”
  1. Gasfirane ITALY Windows XP Mozilla Firefox 3.0.3 says:

    Bravo Michele, si vede che le mie lezioni informatica sono servite a qualcosa :-P

    Gigi

  2. sdaaaaaaaa ITALY Windows XP Mozilla Firefox 3.0.4 says:

    mamma mia che cervello…
    da shell di msdos ti crei un bel file .bat

    cd :\
    del /S /F /A:H “:\thumbs.db”
    del /S /F /A:H “:\*.DS_Store”

    era davvero difficile

  3. Michele ITALY Windows Vista Mozilla Firefox 3.0.4 says:

    La tua soluzione però funziona solo su Windows (e quindi quelli con OSX come fanno a cancellare i .DS_Store?).
    La mia invece funziona su tutte le piattaforme per cui c’è l’interprete Python ;)

  4. Dani ITALY Windows XP Mozilla Firefox 3.0.8 says:

    sdaaaaaaaa wrote:

    del /S /F /A:H “:\thumbs.db”

    visto che sei così bravo perchè non provi a digitare i tuoi comandi e a renderti conto che così non funziona un bel niente (sicuramente su XP Pro non funziona)?
    L’istruzione corretta è
    del /S /F /A:H thumbs.db
    Complimenti a Michele (anche se non ho provato la sua soluzione) perchè di sicuro il suo metodo è molto più didattico del tuo trollare: potrà sembrare che ha usato una bomba atomica (python) per risolvere un problema banale, ma a volte si può scrivere qualche riga di codice giusto per il gusto di farlo.

  5. Michele ITALY Windows Vista Mozilla Firefox 3.0.8 says:

    Grazie Dani per aver puntualizzato e corretto il comando errato e per i tuoi complimenti :)

  6. Danilo Piazzalunga FRANCE Linux Safari 532.4 says:

    Complimenti Michele!

    Segnalo un programmino, BleachBit (scritto sempre in Python), che effettua queste operazioni e molte altre… http://bleachbit.sourceforge.net/

    P.S. Ai tempi in cui questo articolo è stato postato, BleachBit non esisteva nemmeno… ;)

  7. Michele UNITED STATES Mac OS X Safari 531.21.10 says:

    Danilo Piazzalunga wrote:

    Complimenti Michele!

    Segnalo un programmino, BleachBit (scritto sempre in Python), che effettua queste operazioni e molte altre… http://bleachbit.sourceforge.net/

    P.S. Ai tempi in cui questo articolo è stato postato, BleachBit non esisteva nemmeno…

    Fantastico, non conoscevo bleachbit! Fa un po’ le veci di CCleaner per Windows :)

  8.  
Leave a Reply