Моя цель - найти номера строк начала и конца инструкции цикла в python.Как разобрать начало и конец операторов цикла в python
Пример сценария
#A.py
Line1: a=0
Line2: while a<5:
Line3: print a
Line4: a=a+1
Desired output:
Start of a loop Line2
End of a loop Line4
Текущий код анализатор
#parser.py
with open(a) as f:
tree = ast.parse(f.read())
taskline=[]
for node in ast.walk(tree):
if isinstance(node, (ast.For)) or isinstance(node,(ast.While)):
print node.lineno-1 <-- This give line number on for the start of a loop
Я хотел достичь выше выход. Я использую AST для разбора данного файла и определения появления циклов. При анализе АСТ я могу найти номер строки для начала цикла, но номер строки для окончания цикла еще не определен. Есть ли способ, которым я мог бы разобрать весь оператор цикла и определить его начальный и конечный номер строки?
[torek's answer] (http://stackoverflow.com/a/17945479/111635) пояснил некоторые вещи, касающиеся модуля 'ast' для меня, поэтому я улучшил свою функцию. –