python: SyntaxError: EOL al escanear la cadena literal

Tengo el error mencionado anteriormente en s1="some very long string............"

¿Alguien sabe lo que estoy haciendo mal?

No estás poniendo un " antes del final de la línea.

Usa """ si quieres hacer esto:

 """ a very long string ...... ....that can span multiple lines """ 

Tuve este problema: finalmente descubrí que la razón era que había incluido \ caracteres en la cadena. Si tiene alguno de estos, “escape” con \\ y debería funcionar bien.

(Suponiendo que no tenga / desee saltos de línea en su cadena …)

¿Cuánto dura realmente esta cuerda?

Sospecho que hay un límite en cuanto a la duración de la lectura de una línea desde un archivo o desde la línea de comandos, y debido a que el final de la línea se corta, el analizador ve algo como s1="some very long string.......... (sin un final " ) y, por tanto, lanza un error de análisis?

Puedes dividir largas filas en varias líneas al escapar de los saltos de línea en tu fuente de esta manera:

 s1="some very long string.....\ ...\ ...." 

En mi situación, tenía \r\n en mis cadenas de diccionario entre comillas simples. Reemplacé todas las instancias de \r con \\r y \n con \\n y solucioné mi problema, devolviendo correctamente los saltos de línea escapados en el dictado evaluado.

 ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n')) ..... 

Yo también tuve este problema, aunque hubo respuestas aquí. Quiero un punto importante para esto después de que no haya espacios vacíos. Sé consciente de ello.

Me enfrenté a un problema similar. Tenía una cadena que contenía la ruta a una carpeta en Windows, por ejemplo, C:\Users\ El problema es que \ es un carácter de escape y, por lo tanto, para usarla en cadenas, debe agregar una más \ .

Incorrecto: C:\Users\

Correcto: C:\\\Users\\\

También tuve este mensaje de error exacto, para mí el problema se solucionó agregando un “\”

Resulta que mi cadena larga, dividida en unas ocho líneas con “\” al final, faltaba una “\” en una línea.

El IDLE de Python no especificó un número de línea en el que estaba este error, pero resaltó en rojo una instrucción de asignación de variable totalmente correcta, lo que me desechó. La statement de cadena deformada real (varias líneas de longitud con “\”) estaba adyacente a la statement resaltada. Tal vez esto ayudará a alguien más.

En mi caso, uso Windows, así que tengo que usar comillas dobles en lugar de simples.

 C:\Users\Dr. Printer>python -mtimeit -s"a = 0" 100000000 loops, best of 3: 0.011 usec per loop 

Estaba recibiendo este error en la función postgresql. Tenía un largo SQL que dividí en varias líneas con \ para una mejor legibilidad. Sin embargo, ese era el problema. Quité todos y los hice en una línea para solucionar el problema. Yo estaba usando pgadmin III.

En mi caso con Mac OS X, tuve la siguiente afirmación:

 model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib') 

Estaba recibiendo el error:

  File "", line 1 model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib') ^ SyntaxError: EOL while scanning string literal 

Después me cambio a:

 model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib") 

Funcionó…

David

Su variable(s1) abarca varias líneas. Para hacer esto (es decir, desea que su cadena abarque varias líneas), debe usar comillas triples (“” “).

 s1="""some very long string............"""