识别其他python脚本中的循环

时间:2017-02-20 09:36:18

标签: python-3.x

首先:对不起我的英文!

我试图编写一个python脚本,可以识别其他python脚本中的任何循环。

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)

我没有任何结果(这已经让我开心,没有错误!)。有人有什么建议吗?

代码的一部分' 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

1 个答案:

答案 0 :(得分:0)

虽然我没有经验,但我认为这应该给你输出。 创建一个多行字符串变量,名称为" rr"在这种情况下,运行此代码 并将所有文件文本作为多行字符串放入其中

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