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:


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()
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).


mon script ne me retourne pas toutes les lignes.