import os,re,string def steiner(points): [fin,fout]=os.popen2('steiner','t') fin.write('2\n') fin.write(str(len(points))+'\n') fin.write('1\n') for point in points: fin.write(str(long(point[0]))+' '+str(long(point[1]))+'\n') fin.close() line=fout.readline() line=fout.readline() m = re.search(r"ST_cost\s+(\d+)",line) if m: val=string.atol(m.group(1)) else: print 'ERROR: Could not find return value of steiner program\n' fout.close() return val p = [ [1,2],[2,4],[4,1],[5,3] ] cost=steiner(p) print 'Minimum Steiner Tree Cost:',cost