Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 631 fois - Téléchargée 18 fois
########################################################################## #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()
11 janv. 2011 à 22:24
Bonne journée`
Cdt
9 janv. 2011 à 03:55
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 !
9 janv. 2011 à 03:31
5 janv. 2011 à 22:50
Cordialement, Bacterius !
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.