Hi All,
I have a task in Python where I need to move .csv files into a new folder. I tried using the below code but it was throwing me an error.

import shutil
import os
source = os.listdir(r'C:\Users\mchalla\PycharmProjects\837_unzip\venv\SampleUnzipFiles\SampleZipFiles/')
destination = 'C:\Users\mchalla\PycharmProjects\837_unzip\venv\SampleUnzipFiles\DelimitedFiles'
for files in source:
        if files.endswith("_new.csv"):

 Error Message:
C:\Users\mchalla\PycharmProjects\837_unzip\venv\Scripts\python.exe C:/Users/mchalla/PycharmProjects/837_unzip/MoveFilesToNewFolder.py
 File "C:/Users/mchalla/PycharmProjects/837_unzip/MoveFilesToNewFolder.py", line 4
 destination = 'C:\Users\mchalla\PycharmProjects\837_unzip\venv\SampleUnzipFiles\DelimitedFiles'
 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Process finished with exit code 1

Could someone please help me to solve this issue?

Thank you!
1 Month
Discussion Span
Last Post by ryantroop

Poor post formatting aside, could the back and forward slash casue issues in line 6?
What is that letter r doing in line 6's parameter?
Do you need a trailing slash in line 7?


Yes I need all the mentioned strings or characters that are in the above code:
r in line 6 denotes a raw string
trailing slash in line 7 denotes that I have multiple files in the folder with multiple extensions.


You need to escape your slashes in string literals.


should be


or, you know.. be consistent and just flag it also as a raw string :-P

The error you are getting is from \U telling Python that the next series of values represents a unicode value (in your case "sers" which, FAIK, converts to the ascii values and then tries to high-bit/low-bit them and errors out).

//More info!
from: https://docs.python.org/3/reference/lexical_analysis.html

Escape sequences only recognized in string literals are:

Escape Sequence Meaning Notes
\N{name} Character named name in the Unicode database (4)
\uxxxx Character with 16-bit hex value xxxx (5)
\Uxxxxxxxx Character with 32-bit hex value xxxxxxxx (6)

so I wasn't far off... it didnt high-bit/low-bit it just straight up tried to convert them to a 32 bit value and puked on itself because it was out of bounds.

Edited by ryantroop: More data!

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.