<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><head><META content="text/html; charset=utf-8" http-equiv="Content-Type">
<STYLE><!-- /* Style Definitions */ p.203d63a9-be16-4640-9f12-8b51f13669b1, li.203d63a9-be16-4640-9f12-8b51f13669b1, div.203d63a9-be16-4640-9f12-8b51f13669b1, table.203d63a9-be16-4640-9f12-8b51f13669b1Table        {margin:0cm; margin-bottom:.0001pt;}div.Section1 {page:Section1;}--></STYLE>
<META content="text/html; charset=utf-8" HTTP-EQUIV="Content-Type">
<META CONTENT="MS Exchange Server version 6.5.7654.12" NAME="Generator">
<TITLE>Exec function problem</TITLE>
</head><BODY>
<P CLASS="203d63a9-be16-4640-9f12-8b51f13669b1">
<!-- Converted from text/rtf format -->
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">Using Python 2.5.</FONT></SPAN><SPAN LANG="en-gb"> </SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">DemandModel.py is a valid, working python script. If I create another script file, then:</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">execfile</FONT></SPAN><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">(</FONT></SPAN><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">‘</FONT></SPAN><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">DemandModel.py</FONT></SPAN><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">’</FONT></SPAN><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">)</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">w</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">orks fine.</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri"> However, the apparently similar:</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">def runfile():</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"> <FONT COLOR="#00B0F0" FACE="Calibri">execfile('DemandModel.py')</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">runfile()</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">doesn</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">’</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">t, for no apparent reason: I get </FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#FF0000" FACE="Calibri"> File "DemandModel.py", line 12, in DemandModel</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#FF0000" FACE="Calibri"> Parameters=ReadDmData(segname)</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#FF0000" FACE="Calibri">NameError: global name 'ReadDmData' is not defined</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">Any ideas why?</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri"></FONT></SPAN><SPAN LANG="en-gb"> </SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">Use of </FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">CodeFile=open('DemandModel.py', 'r')</FONT></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT COLOR="#00B0F0" FACE="Calibri">exec(CodeFile)</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">instead of execfile, doesn</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">’</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">t make any difference either way</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">, nor does it make any difference if I read the file using read() and then execute the string- in all cases the top-level command works; placed in a function it doesn</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">’</FONT></SPAN><SPAN LANG="en-gb"><FONT FACE="Calibri">t.</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><FONT FACE="Calibri">Regards and thanks,</FONT></SPAN><SPAN LANG="en-gb"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><B></B></SPAN><SPAN LANG="en-gb"><B></B></SPAN><B><SPAN LANG="en-us"></SPAN></B><B><SPAN LANG="en-us"><FONT COLOR="#1F497D" FACE="Arial" SIZE=2>Andrew Currall</FONT></SPAN></B><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT COLOR="#1F497D" FACE="Arial" SIZE=2> MPhys<BR>
Senior Consultant, Transportation<BR>
D +44 (0)1727 535612<BR>
</FONT></SPAN><SPAN LANG="en-gb"></SPAN><A HREF="mailto:andrew.currall@aecom.com"><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><U></U></SPAN><U><SPAN LANG="en-us"></SPAN></U><U><SPAN LANG="en-us"><FONT COLOR="#0000FF" FACE="Arial" SIZE=2>andrew.currall@aecom.com</FONT></SPAN></U><SPAN LANG="en-gb"></SPAN></A><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"><B></B></SPAN><SPAN LANG="en-gb"><B></B></SPAN><B><SPAN LANG="en-us"></SPAN></B><B><SPAN LANG="en-us"><FONT COLOR="#1F497D" FACE="Arial" SIZE=2>AECOM</FONT></SPAN></B><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-us"><BR>
</SPAN><SPAN LANG="en-us"><FONT COLOR="#1F497D" FACE="Arial" SIZE=2>AECOM House<BR>
63-77 Victoria Stre</FONT><FONT COLOR="#1F497D" FACE="Arial" SIZE=2>et<BR>
St Albans, Herts AL1 3ER<BR>
T +44 (0)1727 535000 F +44 (0)1727 535099<BR>
</FONT></SPAN><SPAN LANG="en-gb"></SPAN><A HREF="http://www.aecom.com/"><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"><U></U></SPAN><U><SPAN LANG="en-us"></SPAN></U><U><SPAN LANG="en-us"><FONT COLOR="#0000FF" FACE="Arial" SIZE=2>www.aecom.com</FONT></SPAN></U><SPAN LANG="en-gb"></SPAN></A><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-gb"></SPAN><SPAN LANG="en-us"></SPAN></P>
<P DIR=LTR><SPAN LANG="en-gb"></SPAN></P>
</P>
<P CLASS="203d63a9-be16-4640-9f12-8b51f13669b1">
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"></SPAN></P>
<P></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt">This email is confidential and is for the intended recipient only. If you are not the intended recipient, please contact the author and you must not disclose or use the contents in any way. The author bears responsibility for any legal action or disputes arising from views or professional advice expressed which do not relate to the business of AECOM Ltd.</SPAN></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt"> </SPAN></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt">AECOM Limited Registered in England No: 1846493</SPAN></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt">Registered Office: AECOM House, 63-77 Victoria Street, St Albans, Herts, AL1 3ER</SPAN></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt"> </SPAN></P>
<P CLASS="MsoNormal" STYLE="MARGIN: 0cm 0cm 0pt"><SPAN STYLE="FONT-FAMILY: 'Arial','sans-serif'; COLOR: black; FONT-SIZE: 10pt">Please consider the environment before printing this e-mail</SPAN></P>
<P CLASS="203d63a9-be16-4640-9f12-8b51f13669b1"> </P></P></BODY></HTML>