我的目标是检测一个包含少量代码片段的文件。当我想用一个场景来解释仪器时,我面临着一个特别的挑战。
#A.py
#start of the code
from future import division
import os
.....
....
print "from future import division"
....
#end of the code
我将编写一个代码 instrumentation.py,我将在文件#A.py 的开头检测一些语句。但由于某种原因,“来自未来的导入部门”语句应该始终位于 python 文件的首位。因此,为了检测,我将在文件中搜索“来自未来导入部门”的字符串,当我找到它时,我会在该行之后检测。下面的场景显示了它。
#A.py
#start of the code
from future import division
print " i successfully instrumented" <------ #inserted code
import os
.....
....
print "from future import division"
....
#end of the code
但相反,我得到了这样的场景:
#A.py
#start of the code
from future import division
print " i successfully instrumented" <------ #inserted code
import os
.....
....
print "from future import division"
print " i successfully instrumented" <------ #inserted code
....
#end of the code
我的搜索算法无法区分实际代码或字符串。我想知道一般情况下如何区分字符串和实际代码?
#instrumentation.py
#start of the code
p=open("A.py",'r')
parser=p.readlines()
while(i<len(parser)):
if("from" and "future" and "import" and "division" in parser[i]):
# I will insert a code fragment in the i+1 position
....
....
#End of the code
我的搜索算法如上述场景所示。