Expression File (.exp) returns encoded string when read in Python

Last Published: April 25, 2020


When using the Select By Attributes dialog in ArcMap, expressions can be saved into an expression file (.exp). These files can be loaded into the Select By Attributes dialog for later use.

Although an .exp file can be opened and viewed with a text editor to see the stored expression, the same file returns a Unicode string if read into a variable in Python.

For example, an .exp file can be opened in Notepad to see that the expression is "OBJECTID" = 1, but if the same .exp file is read into Python it returns "\000O\000B\000J\000E\000C\000T\000I\000D\000"\000 \000=\000 \0001\000 for the expression.


The .exp files are encoded.

Solution or Workaround

To see the expression stored within the expression file, use Python's decode method with the utf-16 encoding scheme.
# Variable: Path to .exp file
text = r"C:\VM_SHARE\Expression.exp"

# Process: Open .exp file for reading
file = open(text, 'r')

# Process: Read first line of .exp file
line = file.readline()

# Process: Decode line
.exp = line.decode('utf-16', 'ignore')

# Message: Return message to display
print exp

# Process: Close file object

Article ID:000011585

  • ArcMap

Receive notifications and find solutions for new or common issues

Get summarized answers and video solutions from our new AI chatbot.

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options