bonjour tous le monde
je suis entrain de faire un script Python qui va rechercher dans un fichier texte trié pour retrouver une information. si il trouve l'info il doit me retourné toutes les lignes contenant cette info dans le file.
j'ai pu aboutis à un résultat mais il n'est pas complet; voici mon script:
déjas je pense que les 2 lignes en rouge sont pas bien. je ne sais pas comment aller à la moitié de la première partie du fichier ( c'est ça l'algo de dichotomie).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 def Binarysearch(filename,ch): lo=0 fs = open(filename, 'r') log=0 #nbr lines: while(fs.readline()): log=log+1 fs.close() hi=log fs = open(filename, 'r') while(1): mid= int((lo+hi)/2) avanc=mid fss = open(filename, 'r') # sauter les ligne jusqu'au milieu. while(avanc>1): rec= fss.readline() avanc=avanc-1 rec=fss.readline() rec.strip() if(hi==lo): fss.close() return rec if ch in rec: hi=mid print rec else: lo=mid+1 fs.close()
mon script ne me retourne pas toutes les lignes.
Partager