PYTHON

Python Raw String: Syntax, Use Cases, and Examples

In Python, a raw string treats backslashes (\) as literal characters. You don’t need to double escape characters like \\n or \\t, which makes raw strings especially useful when dealing with regular expressions, file paths, or other backslash-heavy data.

A raw string in Python starts with an r or R prefix. For example, r"\n" tells Python not to interpret \n as a newline but as a backslash followed by the letter n.

Once you understand how to use a Python raw string, you can simplify a lot of code that previously required careful escaping.


What Is a Raw String in Python?

A raw string is a type of string literal. When you prefix a string with r or R, Python skips processing escape sequences within it.

raw = r"Line1\nLine2"
print(raw)  # Output: Line1\nLine2

This makes a raw string Python offers ideal for:

  • Regular expressions
  • Windows file paths
  • LaTeX formatting
  • JSON strings with backslashes

Raw strings behave like normal strings in most other respects. You can slice them, concatenate them, and loop over them the same way you do with regular strings.


Creating a Python Raw String

To define a raw string, place an r or R before the string’s opening quote:

s1 = r"This is a raw string"
s2 = R"This also works"

You can use either single or double quotes:

s3 = r'This is raw'
s4 = r"This is also raw"

Multiline raw strings are possible using triple quotes:

s5 = r"""Raw string
that spans
multiple lines"""

Be cautious with certain escape sequences like an ending backslash. For instance:

path = r"C:\new_folder\"  # This will cause a SyntaxError

To avoid issues, don’t end raw strings with an odd number of backslashes.


How Raw Strings Handle Escape Characters

Normal strings treat escape characters like \n or \t as special symbols. A raw string disables that behavior.

Normal string

s = "Path:\nfolder"
print(s)
# Output:
# Path:
# folder

Raw string

s = r"Path:\nfolder"
print(s)
# Output: Path:\nfolder

This ability becomes extremely helpful in file paths and regular expressions.


Use Case: File Paths

Windows file paths are filled with backslashes. If you forget to escape them, your code will break. Python raw strings let you avoid the hassle.

Without raw string:

path = "C:\\Users\\John\\Documents\\file.txt"

With raw string:

path = r"C:\Users\John\Documents\file.txt"

You achieve the same result with less noise and better readability.


Use Case: Regular Expressions

Regex patterns use a lot of backslashes. If you don’t use a raw string, Python will interpret those escape sequences before they reach the regex engine.

Without raw string:

import re
pattern = "\\d+\\.\\d+"
match = re.match(pattern, "123.45")

With raw string:

import re
pattern = r"\d+\.\d+"
match = re.match(pattern, "123.45")

In this context, using the python print raw string method makes your pattern much more readable.


How to Print a Raw String in Python

You can print a raw string just like any other string:

print(r"This is a raw string with a \n that won't break the line")

Output:

This is a raw string with a \n that won't break the line

This helps you see what’s actually in the string, rather than what it evaluates to.


Convert a Normal String to Raw String Format

Python doesn’t provide a built-in way to retroactively convert a string to raw format. Once Python has parsed the string, it has already interpreted the escape sequences.

If you have a normal string like this:

s = "C:\\Users\\Admin"

You can simulate a raw string by escaping all backslashes manually:

s = s.encode('unicode_escape').decode()
print(s)
# Output: C:\Users\Admin

This conversion trick is often used in logging and debugging.

To create your own version of a "raw string" for display, use repr():

s = "C:\Users\Admin"
print(repr(s))  # Output: 'C:\\Users\\Admin'

While you can’t convert an already evaluated string to a true raw string, you can approximate the appearance of one.


Common Pitfall: Ending with a Backslash

You can’t end a raw string with an odd number of backslashes because the final backslash would escape the closing quote.

# Invalid
path = r"C:\folder\"

# Valid
path = r"C:\folder\\"  # Double the final backslash

Be careful with user inputs or dynamically constructed paths when using raw strings.


Raw String with Multiline Strings

Multiline raw strings work as expected, but they still follow the no-terminal-backslash rule:

r"""This is a raw
multiline string
with \backslashes\ still intact."""

Python processes the string literally, so you can use it for templating, documentation strings, or regex patterns that span multiple lines.


Raw Strings vs Byte Strings

Don’t confuse a Python raw string with a byte string. Raw strings deal with how Python interprets backslashes. Byte strings represent binary data.

Raw string:

s = r"Hello\nWorld"  # Treated as text with literal backslashes

Byte string:

b = b"Hello\nWorld"  # Represents binary, newline will be respected

Use byte strings when reading binary files or interacting with low-level network protocols. Use raw strings when you want to control how Python interprets backslashes in text.


When to Avoid Raw Strings

Avoid raw strings when your content includes escape sequences you actually want to process, like newlines or tabs:

s = r"\n"  # Will print \n, not a new line

# Instead:
s = "\n"   # Will create an actual newline

Raw strings are not always a replacement for standard string formatting. Use them selectively when backslashes become cumbersome.


The Python raw string provides a straightforward way to handle escape characters by ignoring them. You can define raw strings with an r or R prefix and use them in contexts where backslashes need to be preserved literally, such as file paths and regular expressions.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster