2017-02-20 4 views
0

Zuerst: Entschuldigung für mein Englisch!Schleife für andere Python-Skripte erkennen

Ich versuche, ein Python-Skript zu schreiben, das jede Schleife in anderen Python-Skripten erkennen kann.

import re 

with open('boite_a_fonctions_v3_1.py', 'r') as f: 
    text=f.read() 
    a = text.split(" ") 
    #print (a) 

    loop = re.compile(r'for"(.*):\t(.*)"') 

    def find_loop(a): 
     c = [] 
     for line in a: 
      c += loop.findall(line) 
     print (c) 

    #find_loop(a) 

Ich habe nichts als Ergebnis (das macht mich schon glücklich, keine Fehler !!). Hat jemand irgendwelche Vorschläge?

Ein Teil des Codes ‚boite_a_fonctions_v3_1.py‘:

fidr.seek(0) 
reg = compile(fmt.get_motif()) 
id = 0 
for line in fidr : 
    for seg in reg.findall(line) : 
     if id == tokenId : 
      mot, etq = seg 
      return mot, etq 
     else : 
      id += 1 
return None 

def get_tokens(fid, fmt, tokenIds): 
    if isinstance(tokenIds, int): 
     try : 
      return get_token(fid,fmt, tokenIds) 
     except : 
      return None 
    else: 
     n = None 
     for id in tokenIds: 
      try: 
       n = len(get_token(fid,fmt, id)) 
       break 
      except: 
       pass 
     if not n : 
      return None 

     ret = list() 
     for i in range(n) : 
      tmp = list() 
      for id in tokenIds : 
       try: 
        tmp.append(get_token(fid,fmt,id)[i]) 
       except: 
        pass 
      ret.append(tmp) 
     return ret 

Antwort

0

Obwohl ich nicht erlebt habe, aber ich denke, das Sie eine Ausgabe geben sollte. Sie ein Multi-Line-String-Variable mit dem Namen "rr" in diesem Fall, und führen Sie diesen Code und setzen alle Ihre Datei Text in ihm als Multi-Line-String

import re 
    rr="""All your input string here""" 
    print(len(re.findall(r'for(.*):(.*)',rr,re.M))) 
Verwandte Themen