#1 Le 09/05/2008, à 13:26
- figarojuju
[Résolu] Effacer ses poubelles et son cache internet en python
Bonjour,
après avoir abusé de la gentillesse de nombreux d'entre vous, je vous donne un petit script sympa pour effacer ses poubelles en python ainsi que son cache internet:
import os, glob, os.path
def effaceFichierDuRep(repertoire):
courant=os.listdir(repertoire)
try:
for rep in courant:
rep=repertoire+rep
if(os.path.isfile(rep)):
os.remove(rep)
else:
try:
os.rmdir(rep)
except OSError:
rep=rep + "/"
effaceFichierDuRep(rep)
os.rmdir(rep)
except OSError:
pass
effaceFichierDuRep("/home/julien/.Trash/")
effaceFichierDuRep("/media/sauvegarde/.Trash-julien/")
effaceFichierDuRep("/home/julien/.mozilla/firefox/11zj03f1.default/Cache/")
Si vous avez des suggestions quant à la manière de le programmer, elles sont évidemment les bienvenues!!
Bonne journée:D
PS 1 ne pas oublier de mettre le slash à la fin de l'URL vers votre fichier à effacer lorsque j'appelle ma fonction
effaceFichierDuRep("nomDuRepertoire/")
PS 2 pour le fonctionnement de ce programme, c'est assez simple, je me sers d'un appel récursif dans ma fonction
Dernière modification par figarojuju (Le 13/05/2008, à 12:18)
Ubuntu: Hardy Heron
Hors ligne
#2 Le 09/05/2008, à 15:45
- aleph
Re : [Résolu] Effacer ses poubelles et son cache internet en python
> figarojuju
> Si vous avez des suggestions quant à la manière de le programmer, elles sont évidemment les bienvenues!!
Bien volontiers.
Python passe pour être un excellent outil d'administration pour toutes les plateformes, alors autant en profiter pleinement. Voir par ex: http://www.ibm.com/developerworks/aix/library/au-python/
Concernant ton script (qui ressemble fort à quelques analogues que l'on trouve sur la toile - aucun reproche, le web est fait pour ça).
- Pour parcourir récursivement un répertoire/dossier et éventuellement récupérer la liste des noms de fichiers pour une tâche ultérieure comme le renommage ou le filtrage, on utilise os.walk().
Voir http://forum.ubuntu-fr.org/viewtopic.php?pid=1423676 msg no 8.
Impossible en l'état actuel de Python (2.5.2) de faire mieux.
- Pour supprimer des fichiers, répertoires inclus, la méthode proposée plus haut n'est pas des plus appropriées, car le récursion se fait du "bas" vers le "haut".
Un petit script pour supprimer fichiers et répertoires. Une adaptation libre basée sur "Python Library Reference, 14.1.4 Files and Directories" (Python 2.5.2)
>>> def efface(top):
assert os.path.isdir(top), 'répertoire invalide'
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
fp = os.path.join(root, name)
print 'files - fp:', fp
#os.remove(fp)
for name in dirs:
ff = os.path.join(root, name)
print 'dirs - fn:', fp
#os.rmdir(fp)
>>> efface('asdfasdfasdf')
Traceback (most recent call last):
File "<psi last command>", line 1, in <module>
File "<psi last command>", line 2, in efface
AssertionError: répertoire invalide
>>> efface('c:\\jm\\junk')
files - fp: c:\jm\junk\fscommand\210.fr.pdf
files - fp: c:\jm\junk\fscommand\220.fr.pdf
files - fp: c:\jm\junk\fscommand\822.11.fr.pdf
etc
- Pour concaténer des chemins, noms de fichier, extensions, ne jamais utiliser explicitement des "/", "\" ou autres, mais toujours les fonctions idoines du module os.path. Exemple: os.path.join() dans le script précédent. Ainsi, tes scripts fonctionneront sur toutes les plateformes.
Bien du plaisir avec Python.
#3 Le 09/05/2008, à 16:10
- figarojuju
Re : [Résolu] Effacer ses poubelles et son cache internet en python
Merci pour les liens, celui d'ibm est excellent, je l'ajoute à mes favoris.
J'analyse ta solution dès que je peux retourner à python, i.e. après mes partiels de kiné...
Bonne journée et merci encore!
PS je n'avais pas utilisé le web pour ce programme, c'est plus de l'ordre du passe temps qu'autre chose que de se faire des petites bidouilles en python pour moi!
Dernière modification par figarojuju (Le 09/05/2008, à 16:13)
Ubuntu: Hardy Heron
Hors ligne
#4 Le 09/05/2008, à 16:32
- NicoA380
Re : [Résolu] Effacer ses poubelles et son cache internet en python
sinon j'ai un petit script shell :
#!/bin/sh
rm -rf /home/julien/.Trash/*
rm -rf /media/sauvegarde/.Trash-julien/*
rm -rf /home/julien/.mozilla/firefox/11zj03f1.default/Cache/*
Hors ligne
#5 Le 09/05/2008, à 16:40
- figarojuju
Re : [Résolu] Effacer ses poubelles et son cache internet en python
Ce script est superbement concis!!
sinon j'aime beaucoup ton lien vers les racketiciels...
Ubuntu: Hardy Heron
Hors ligne
#6 Le 09/05/2008, à 16:42
- nicolas66
Re : [Résolu] Effacer ses poubelles et son cache internet en python
Un autre script pour éviter de perdre accidentellement ses données :
#!/bin/bash
function Delete
{
mv $@ $HOME/.Trash
}
function Purge
{
\rm -rf $HOME/.Trash/*
}
alias rm='Delete'
alias purge='Purge'
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne