begin process at 2012 05 24 00:38:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier & Disque

 > LE GLOUTON ! [MANGE ET RECRACHE LES FICHIERS QU IL TROUVE DANS SON REPERTOIRE D EXECUTION]

LE GLOUTON ! [MANGE ET RECRACHE LES FICHIERS QU IL TROUVE DANS SON REPERTOIRE D EXECUTION]


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier & Disque Classé sous :simplification, deploiement, gobage, fichier, glouton Niveau :Débutant Date de création :05/01/2011 Date de mise à jour :09/01/2011 03:31:33 Vu :5 008

Auteur : saigneurdushi

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

ATTENTION - BE CAREFULL
[ne pas lancer dans un répertoire dont vous n'avez pas sauvegarder le contenu au préalable]
[do not run without saving the content of the execution directory]

il fonctionne simplement:
-vous lancer le programme avec argument [with argument] il mange les fichiers[eat]
-vous lancer le programme sans argument [witout argument] et il les recraches.[shit]

attention c'est mon premier glouton, et donc il ne mange pas encore les dossiers,

Information:
n'essayer pas de lui faire manger des fichiers dont la taille unitaire est supérieur à environ 250 Ko(variable suivant la config) sous risque de devoir attendre longtemps...
Il fonctionne bien mieux pour ingérer des petits fichiers mais en grand nombre
(de cette manière il est possible de stoker quelques megaoctets sans trop de temps d'attente).
Il recrache bien plus vite qu'il mange =)
Il est aussi trés gourmand (pour un glouton c'est normal.!) en ressource processeur lors de la conversion des fichiers avant de les ingérer ou de les recracher).

#l'affichage du pourcentage de l'evolution de la conversion fait perde beaucoup de temps de calcul voila pourquoi ils est laisser en commentaires#

Bonne journée!

:-)

Source

  • ##########################################################################
  • #C'est un glouton, #
  • #Ce fichier ingere tout les autres fichiers qu il trouve dans le #
  • #repertoire ou il s'execute en les convertissant au prealable en chaine #
  • #de type ascii si il est executer avec un argument. #
  • #et les recraches a l endroit ou il se situe si il est executer sans #
  • #un argument #
  • # #
  • #[grosse attention !!! SVP penser a le placer dans un dossier #
  • #vide pour l'essayer la premiere fois, sinon il gobera tout les fichiers.#
  • #et ne jamais l'executer a la racine !!!] #
  • ##########################################################################
  • import os,sys,string,time,datetime
  • heresplit="#####"+" DO NOT REMOVE"
  • def convStoH(string):
  • #convertit une chaine de caractere en int-char
  • H=""
  • cp=0
  • for each in string:
  • cp=cp+1
  • H=H+str(ord(each))+'-'
  • # print str(float(float(cp*100)/float(len(string)))) +'% of the file'
  • return H
  • def convHtoS(hstring):
  • #convertit une suite de int-char en chaine de caractere
  • tmp=hstring.split('-')
  • S=''
  • cp=0
  • for each in tmp:
  • if len(each)>0:
  • cp=cp+len(each)+1
  • S=S+chr(int(each))
  • # print str(float(float(cp*100)/float(len(hstring)))) +'% of the file'
  • return S
  • def eject(name,content):
  • sep='/'
  • n=convHtoS(name).split(sep)
  • open(n[len(n)-1],'w').write(convHtoS(content))
  • def eating(_file):
  • sep='/'
  • currentdir=os.getcwd()
  • myfile=open(currentdir+sep+ _file,'r').read()
  • name=convStoH(currentdir+sep+_file)
  • content=convStoH(myfile)
  • name='#N#'+name
  • content='#C#'+content
  • me=open(currentdir+sep+sys.argv[0],'r').read()
  • open(currentdir+sep+sys.argv[0],'w').write(me+name+content)
  • #decommenter seulement si vous etes sur d'avoir sauvegarde le repertoire
  • #os.system('rm "'+_file+'"')
  • def CheckDir():
  • checksplit()
  • currentdir=os.getcwd()
  • cd=os.listdir(currentdir)
  • myname=sys.argv[0]
  • for eachfile in cd:
  • if str(eachfile).find(myname)==-1:
  • eating(eachfile)
  • def CheckMe():
  • checksplit()
  • me=open(sys.argv[0],'r').read()
  • temp=me.split(heresplit)[1]
  • if len(temp)>1:
  • t= temp.replace('\n','').split('#N#')
  • for each in t:
  • if len(each)>0 and each.find('#C#')>-1:
  • name=each.split('#C#')[0]
  • content=each.split('#C#')[1]
  • eject(name,content)
  • me=open(sys.argv[0],'r').read().split(heresplit)[0]
  • open(sys.argv[0],'w').write(me)
  • def checksplit():
  • me=open(sys.argv[0],'r').read()
  • if me.find(heresplit)==-1:
  • myname=sys.argv[0]
  • open(sys.argv[0],'w').write(me+heresplit)
  • def main():
  • try:
  • #si il y a un argument
  • arg=sys.argv[1]
  • t1=datetime.datetime.now()
  • CheckDir() ## manger les fichiers
  • TimeEat=str(datetime.datetime.now()-t1) + " to operate the eat."
  • print TimeEat
  • except:
  • #si il n'y a pas d argument
  • t1=datetime.datetime.now()
  • CheckMe() ## recracher les fichiers
  • TimeShit=str(datetime.datetime.now()-t1) + " to operate the shit."
  • print TimeShit
  • main()
##########################################################################
#C'est un glouton,							 #
#Ce fichier ingere tout les autres fichiers qu il trouve dans le 	 #
#repertoire ou il s'execute en les convertissant au prealable en chaine  #
#de type ascii si il est executer avec un argument.		 	 #
#et les recraches a l endroit ou il se situe si il est executer sans	 #
#un argument								 #
#									 #
#[grosse attention !!! SVP penser a le placer dans un dossier 		 #
#vide pour l'essayer la premiere fois, sinon il gobera tout les fichiers.#
#et ne jamais l'executer a la racine !!!]				 #
##########################################################################

import os,sys,string,time,datetime
heresplit="#####"+" DO NOT REMOVE"

def convStoH(string):
 #convertit une chaine de caractere en int-char
 H=""
 cp=0
 for each in string:
  cp=cp+1
  H=H+str(ord(each))+'-'
#  print str(float(float(cp*100)/float(len(string)))) +'% of the file'
 return H
	
def convHtoS(hstring):
#convertit une suite de int-char en chaine de caractere
 tmp=hstring.split('-')
 S=''
 cp=0
 for each in tmp:
  if len(each)>0:
   cp=cp+len(each)+1
   S=S+chr(int(each))
#   print str(float(float(cp*100)/float(len(hstring)))) +'% of the file'
 return S

def eject(name,content):
 sep='/'
 n=convHtoS(name).split(sep) 
 open(n[len(n)-1],'w').write(convHtoS(content))
	
def eating(_file):	
 sep='/'
 currentdir=os.getcwd()
 myfile=open(currentdir+sep+ _file,'r').read()
 name=convStoH(currentdir+sep+_file)
 content=convStoH(myfile)
 name='#N#'+name
 content='#C#'+content
 me=open(currentdir+sep+sys.argv[0],'r').read()
 open(currentdir+sep+sys.argv[0],'w').write(me+name+content)
 #decommenter seulement si vous etes sur d'avoir sauvegarde le repertoire
 #os.system('rm "'+_file+'"')	
	
	
def CheckDir():
 checksplit()
 currentdir=os.getcwd()
 cd=os.listdir(currentdir)
 myname=sys.argv[0]
 for eachfile in cd:
  if str(eachfile).find(myname)==-1:
   eating(eachfile)
			
def CheckMe():
 checksplit()
 me=open(sys.argv[0],'r').read()
 temp=me.split(heresplit)[1]
 if len(temp)>1:
  t= temp.replace('\n','').split('#N#')
  for each in t:
   if len(each)>0 and each.find('#C#')>-1:
    name=each.split('#C#')[0]
    content=each.split('#C#')[1]
    eject(name,content)
  me=open(sys.argv[0],'r').read().split(heresplit)[0]
  open(sys.argv[0],'w').write(me)
 

def checksplit():
 me=open(sys.argv[0],'r').read()
 if me.find(heresplit)==-1:
  myname=sys.argv[0]
  open(sys.argv[0],'w').write(me+heresplit)


def main():
  try:
  	#si il y a un argument
  	arg=sys.argv[1]
  	t1=datetime.datetime.now()
  	CheckDir() ## manger les fichiers
  	TimeEat=str(datetime.datetime.now()-t1) + " to operate the eat."
	print TimeEat  	
  except:
	#si il n'y a pas d argument
	t1=datetime.datetime.now()
	CheckMe() ## recracher les fichiers
  	TimeShit=str(datetime.datetime.now()-t1) + " to operate the shit."
  	print TimeShit
  
main()  

 Conclusion

Pas vraiment utile mais un peu rigolo.


 Historique

05 janvier 2011 09:16:17 :
(correction d'orthographe:-)
09 janvier 2011 03:31:45 :
Prise en compte du commentaire de Bacterius. (j'avoue c'est pas tres safe, mais ca marche pour des fichiers de petite taille :-)

 Sources du même auteur

Source avec Zip Source avec une capture LISTING ET LOGS DES CONNEXIONS ET DECONNEXIONS DE MACHINES Q...
Source avec une capture PHOTO SATELLITE AVEC ARCHIVAGE
Source avec une capture PRENEUR DE CHOIX, PRISE DE DECISION, COMPARAISON D ELEMENT
Source avec une capture PÊCHEUR D'ADRESSE MAC :-)
CRYPTE ET DECRYPTE UN FICHIER (AVEC HASH POUR VÉRIFICATION)

 Sources de la même categorie

ENLEVER LES ACCENTS DE TOUS LES FICHIERS par Averell
Source avec une capture TRIER SES FILMS PAR GENRE - INTERFACE ZENITY OU LIGNE DE COM... par sarathai
PYSCANLOG SCANNER DE FICHIER LOG par Guillamue06
Source avec Zip RÉPLICATOR par dhuyp
[BASH] ALERTE ESPACE DISQUE par zaggash

 Sources en rapport avec celle ci

TRANSFERT DE FICHIER PAR SOCKET par Guillamue06
Source avec une capture TRIER SES FILMS PAR GENRE - INTERFACE ZENITY OU LIGNE DE COM... par sarathai
PYSCANLOG SCANNER DE FICHIER LOG par Guillamue06
FONCTION COMPTER LE NOMBRE DE LIGNE par thibault7249
Source avec Zip CONCATÉNER DES FICHIERS TEXTES par amaury74

Commentaires et avis

Commentaire de Bacterius le 05/01/2011 22:50:47

Ouais euh bon ... niveau sécurité c'est pas top quand même. Perso j'aurais mis en commentaire la ligne qui supprime les fichiers par défaut en demandant aux lecteurs de décommenter quand ils sont sûrs qu'il n'y a aucun risque. Parti comme ça, tu peux être certain qu'il y a une poignée de personnes qui n'ont absolument pas lu l'avertissement et qui ont peut-être perdu des fichiers (enfin, non, en général on place une source téléchargée dans un répertoire à part, mais bon).

Cordialement, Bacterius !

Commentaire de saigneurdushi le 09/01/2011 03:31:48

Merci, j'en ai pris compte

Commentaire de Bacterius le 09/01/2011 03:55:53 9/10

Merci ! Si tu veux étendre le code aux sous-dossiers tu peux utiliser une méthode récursive : tu parcours chaque fichier/dossier à partir d'un répertoire racine, si c'est un fichier tu le gloutonnes et si c'est un dossier tu réappelles la même fonction avec ce dossier en répertoire racine. A terme ça nettoyera tous les sous-dossiers.

Aussi, penses à respecter l'indentation du Python, qui est de 4 ou 8 espaces (1 ou 2 tabulations) normalement (bien que sur la source il se peut que ce soit le serveur qui l'ait formatté ainsi), sinon c'est un bon premier glouton !

Cordialement, Bacterius !

Commentaire de saigneurdushi le 11/01/2011 22:24:52

Lol, je t en prie, j avais pensé pour les sous dossier a zipper des que ce n est pas un fichier puis decouper l archive en morceau. Mais j ai mis ce projet de coté, c'etait juste un trip :)
Bonne journée`
Cdt

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

probleme avec os.path.getctime() [ par Bl0tCh ] Voilà, Donc cette fonction est censée me donner la date de creation du fichier (en secondes) mais le probleme c ke elle me donne la premiere date de c ecrire un dico dans un fichier texte [ par airod ] je cherche depuis un bout de temps mais rien y fait! Mon prob: je pars d'un fichier de config (*.cfg), et j'en crée un dico dans mon appli, ceci menu contextuel au clic de souris [ par frankystadore ] Bonjour à tous, chers programmeurs!! Je suis actuellement en train de créer une interface en Python, et j'aimerai savoir comment faire une s Fichiers en python [ par darfeuille ] Salut,   Etant novice en python, je bloque sur un truc :   Dans un de mes programmes, a un moment, je dois recopier un fichier (en le modi Date de création des fichiers par ftp [ par judre ] Salut, J'ai une application qui transfère une tonne de fichier par ftp en utilisant ftplib.  J'aimerais savoir si y'a un truc pour tél comment créer un fichier HTML avec Python [ par anwaarber ] salut a tous,j'ai un problème lors de la création d'un fichier HTML avec pythonsurtout quand je fait passer des variables dans le code :def modifier les metadonnées [ par airod ] Je cherche a etre mis sur la voie. Comment peut on editer les champs IPTC (métadonnées) propre a une image? Faut il lire le fichier image c Ouverture d'un fichier windows (avec Tkinter) [ par Uims ] Bonjour, Je travaille sous python et Tkinter et j'aurai voulu savoir comment dire a python de demarrer (comme on clique sur un fichier) une applicati lire une DTD embarquée dans un fichier XML [ par 600gpx ] Bonjour, j'ai un fichier XML que je souhaite parser avec l'outil DOM. Ce fichier contient une DTD spécifique embarquée. exemple : <!DOCT Comment restaurer data.fs dans l' application zope? [ par rabikisa ] Bonjour, J'ai monté un serveur Zope sous Linux et je dois mettre en place une stratégie de sauvegarde. Zope sauvegarde toutes ses configurations, les


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,824 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales