Le glouton ! [mange et recrache les fichiers qu il trouve dans son repertoire d execution]

Contenu du snippet

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 / Exemple :


##########################################################################
#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.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.