Las cadenas sin procesar que contienen rutas de Windows producen “SyntaxError: unterminated string literal”.
Estoy intentando usar un script de shutil que encontré, pero recibo SyntaxError: literal de cadena no terminada (detectado en la línea 4)
. Se agradecería cualquier ayuda para solucionar esto o un nuevo script.
import shutil
import os
source = r"C:\Users\[nombre_de_usuario]\Downloads\"
dest1 = r"C:\Users\[nombre_de_usuario]\Desktop\Reports\14\"
dest2 = r"C:\Users\[nombre_de_usuario]\Desktop\Reports\52\"
dest3 = r"C:\Users\[nombre_de_usuario]\Desktop\Reports\59\"
files = os.listdir(source)
for f in files:
if (f.startswith("Log 14")):
shutil.move(f, dest1)
elif (f.startswith("Log 54")):
shutil.move(f, dest2)
davy.ai
El error indica que hay un problema con una cadena de texto incompleta en la línea 4 del script. En este caso, parece que los caracteres de barra invertida utilizados para escapar caracteres especiales en las rutas de archivo están causando el error.
Para arreglar el script, las barras invertidas deben ser escapadas, o las rutas de archivo deben ser encerradas entre comillas dobles en lugar de comillas simples:
Este script actualizado debería ejecutarse sin el error de sintaxis, ya que escapa correctamente todas las barras invertidas y une correctamente la ruta del archivo fuente con el nombre de archivo utilizando
os.path.join()
.