# Python Windows Path: Fix Backslash Escape Errors

> Resolve unicodeescape errors in Python Windows paths by using raw strings with the r prefix, forward slashes, or double backslashes in file path strings

**URL:** https://sentry.io/answers/handle-windows-paths-in-python/

---

## The Problem

I'm getting a strange error when attempting to open a file with Python on Windows. Here's my code:

```python
import csv

data = open("C:\Users\sam\Documents\data\1.5\data.csv")
data = csv.reader(data)
print(data)
```

When I try to execute it, I get this error:

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

## The Solution

The error is caused by the backslash character (`\`) that is used by Python for [escape sequences](https://docs.python.org/3/reference/lexical_analysis.html#escape-sequences) to represent special characters, for example, `\n` for new line. The error message indicates that Python is attempting to interpret the `\User` section of the path string as a Unicode code point because it starts with `\U`.

We can get around this in a few different ways.

### Use Raw Strings

By placing an `r` in front of a string, we instruct Python not to look for escape sequences within it, and thus force it to treat any backslashes as literal backslashes.

```python
import csv

data = open(r"C:\Users\sam\Documents\data\1.5\data.csv")
data = csv.reader(data)
print(data)
```

### Use Forward Slashes

File paths on Mac and *nix-based systems use forward slashes rather than backslashes to denote folder structure. Python allows us to do this on Windows as well:

```python
import csv

data = open("C:/Users/sam/Documents/data/1.5/data.csv")
data = csv.reader(data)
print(data)
```

This approach has the advantage of making partial or relative path strings work across platforms. For example, the path `sam/Documents/data/1.5/data.csv` could be resolved to `/home/sam/Documents/data/1.5/data.csv` on a Linux system or `C:\Users\sam\Documents\data\1.5\data.csv` on a Windows system, as long as the script is executed in `/home/` or `C:\Users`.

### Use Double Backslashes

In a standard Python string, the escape sequence `\\` translates to `\`. Therefore, a third way we can resolve this problem is by replacing all `\`s with `\\`s in the path.

```python
import csv

data = open("C:\\Users\\sam\\Documents\\data\\1.5\\data.csv")
data = csv.reader(data)
print(data)
```

---

*Source: [sentry.io/answers/handle-windows-paths-in-python/](https://sentry.io/answers/handle-windows-paths-in-python/)*
