Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App

Related Articles

Preventing Escape Sequence Interpretation in Python

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Python Escape Sequence is a combination of characters (usually prefixed with an escape character), that has a non-literal character interpretation such that, the character’s sequences which are considered as an escape sequence have a meaning other than the literal characters contained therein. Most Programming languages use a backslash \ as an escape character. This character is used as an escape sequence initiator, any character (one or more) following this is interpreted as an escape sequence. If an escape sequence is designated to a Non-Printable Character or a Control Code, then the sequence is called a control character. 

List of Escape Sequence in Python

Escape CharacterMeaning
\’Single quote
\”Double quote
\n New line
\rCarriage Return
\tHorizontal tab
\fform feed
\vvertical tab
\0Null character
\N{name}Unicode Character Database named Lookup
\uxxxxxxxxUnicode Character with 16-bit hex value XXXX
\UxxxxxxxxUnicode Character with 32-bit hex value XXXXXXXX
\oooCharacter with octal value OOO
\xhhCharacter with hex value HH

The above table is applicable to Python programming language, as different languages have different control sequences and control characters so the above table may not work in your programming language of choice. Ex. Windows Command Line interpreter uses a caret ( ^ ) to escape characters, and therefore the above table won’t be applicable there.

Python Escape Sequence Interpretation

Python Escape Sequence interpretation is done, when a backslash is encountered within a string. After the encounter of a backslash (inside a string), any following character (with the ( \ )) would be looked upon in the aforementioned table. If a match is found then the sequence is omitted from the string, and its translation associated with the sequence is used. If a match is not found, then no lookup happens, and the control sequence is copied as it is. 



# A string with a recognized escape sequence
print("I will go\tHome")
# A string with a unrecognized escape sequence
print("See you\jtommorow")


As seen in the below output, the first print statement produced an output where the \t got resolved into a vertical tab and is omitted in the output. On the other hand, in the second print statement, the \j persists, as no legal resolution for that sequence exists.

I will go    Home
See you\jtommorow

Problems due to escape characters may not always result in undesirable output, but also errors. For example, the below code upon execution will produce an error.




Produces the following error

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

The error is caused because the  \U  in the string leads to the next 4 characters being treated as a 32-bit Hexadecimal value which would correspond to a Unicode code point. This leads to an error as the next character is which is outside the base 16 range. 

Preventing Escape Sequence Interpretation in Python

There are instances where we don’t want the strings to behave in this way. In those cases, we generally want to preserve the backslashes. Some of the situations in which this may be required are:

  • The string contains a Network or Local path
  • The string contains regex, which would further be processed by the regex engine

Methods of Preventing Python Escape Sequence

 Here are a few methods demonstrating the prevention of Escape Sequences in Python.

Method 1: Using double Backslashe (\\)

Consistently doubling the backslashes, also allows us to overcome such issues. In this method, we manually find every single backslash in the string and concatenate another backslash to it (at its immediate position). Generally, a tedious method, and only advised if the string size is less. 


# sample string
s = "I love to use \t instead of using 4 spaces"
# normal output
# doubling line backslashes
s = "I love to use \\t instead of using 4 spaces"
# output after doubling


I love to use      instead of using 4 spaces
I love to use \t instead of using 4 spaces

Method 2: Using Raw String

r’….’ or R’…..’ construct, commonly referred to as raw strings, is used to preserve the escape sequences as literals. Such that it does what the previous method did but automatically (does not require human intervention). For turning a normal string into a raw string, prefix the string (before the quote) with an r or R. This is the method of choice for overcoming this escape sequence problem. 


s = "C:\Program Files\norton\appx"
# normal output
# changing the string into a raw string
s = r"C:\Program Files\norton\appx"
# Outputting the raw version of the string


C:\Program Files
C:\Program Files\norton\appx

Method 3: Using repr() function

The repr() function does not interpret the escape sequence in Python. It returns the object in its printable format.


str = "I \nlove \tGeeksforGeeks"


love     GeeksforGeeks
'I \nlove \tGeeksforGeeks'

My Personal Notes arrow_drop_up
Last Updated : 14 Mar, 2023
Like Article
Save Article
Similar Reads
Related Tutorials