The script below iterates through a folder and determines what version of ArcMap (9.0 - 10.5) each MXD was saved in then writes to a text file. The file is saved with the string in line 11. It's telling me this script also has a syntax error in line 11, but I can not see why? I'm running PythonWin 2.7 on Windows 10.
What I want is to have the file named after the directory (i.e. whatever the user puts in the workspace parameter of the script tool). Is there a way to do that?
<SPAN class="keyword token">import</SPAN> glob<SPAN class="punctuation token">,</SPAN> os<SPAN class="punctuation token">,</SPAN> sys
<SPAN class="keyword token">from</SPAN> oletools<SPAN class="punctuation token">.</SPAN>thirdparty <SPAN class="keyword token">import</SPAN> olefile
<SPAN class="keyword token">import</SPAN> arcpy
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
Workspace <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
mxdFiles <SPAN class="operator token">=</SPAN> glob<SPAN class="punctuation token">.</SPAN>glob<SPAN class="punctuation token">(</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>Workspace<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'*.mxd'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Write to textfile</SPAN>
txtFile <SPAN class="operator token">=</SPAN> open<SPAN class="punctuation token">(</SPAN>Workspace <SPAN class="operator token">+</SPAN> <SPAN class="string token">"{}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Identify ArcMapVersion.txt"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"w"</SPAN><SPAN class="punctuation token">)</SPAN>
txtFile<SPAN class="punctuation token">.</SPAN>write<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"The folling list is the file path(s) to the MXD(s) followed by the ArcMap version"</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"\n"</SPAN><SPAN class="punctuation token">)</SPAN>
txtFile<SPAN class="punctuation token">.</SPAN>write<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"-------------------------------------------------------------------"</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"\n"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">def</SPAN> <SPAN class="token function">mxd_version</SPAN><SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
ofile <SPAN class="operator token">=</SPAN> olefile<SPAN class="punctuation token">.</SPAN>OleFileIO<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">)</SPAN>
stream <SPAN class="operator token">=</SPAN> ofile<SPAN class="punctuation token">.</SPAN>openstream<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Version'</SPAN><SPAN class="punctuation token">)</SPAN>
data <SPAN class="operator token">=</SPAN> stream<SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>decode<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'utf-16'</SPAN><SPAN class="punctuation token">)</SPAN>
version <SPAN class="operator token">=</SPAN> data<SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'\x00'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">return</SPAN> version
<SPAN class="keyword token">for</SPAN> mxdFile <SPAN class="keyword token">in</SPAN> mxdFiles<SPAN class="punctuation token">:</SPAN>
fileName <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>basename<SPAN class="punctuation token">(</SPAN>mxdFile<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> mxdFile<SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">(</SPAN>mxd_version<SPAN class="punctuation token">(</SPAN>mxdFile<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\t Successful: "</SPAN> <SPAN class="operator token">+</SPAN> mxdFile <SPAN class="operator token">+</SPAN> <SPAN class="string token">" "</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN>mxd_version<SPAN class="punctuation token">(</SPAN>mxdFile<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"\n"</SPAN><SPAN class="punctuation token">)</SPAN>
txtFile<SPAN class="punctuation token">.</SPAN>write<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"\t Successful: "</SPAN> <SPAN class="operator token">+</SPAN> mxdFile <SPAN class="operator token">+</SPAN> <SPAN class="string token">" "</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="punctuation token">(</SPAN>mxd_version<SPAN class="punctuation token">(</SPAN>mxdFile<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"\n"</SPAN><SPAN class="punctuation token">)</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>AddMessage<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"------------------All MXDs Completed-------------------"</SPAN><SPAN class="punctuation token">)</SPAN>
txtFile<SPAN class="punctuation token">.</SPAN>write<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"------------------All MXDs Completed--------------------"</SPAN><SPAN class="punctuation token">)</SPAN>
txtFile<SPAN class="punctuation token">.</SPAN>close<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>