Ho il suddetto errore in s1="some very long string............"
Qualcuno sa cosa sto facendo di sbagliato?
Ho il suddetto errore in s1="some very long string............"
Qualcuno sa cosa sto facendo di sbagliato?
Risposte:
Non stai mettendo un "
prima della fine della linea.
Usa """
se vuoi fare questo:
""" a very long string ......
....that can span multiple lines
"""
Ho avuto questo problema - alla fine ho capito che il motivo era che avevo incluso i \
caratteri nella stringa. Se hai uno di questi, "sfuggili" con \\
e dovrebbe funzionare bene.
r
prima della stringa per evitare che causino problemi.
(Supponendo che non ci siano / desideri interruzioni di riga nella stringa ...)
Quanto dura davvero questa stringa?
Ho il sospetto che ci sia un limite a quanto può essere lunga una riga letta da un file o dalla riga di comando, e poiché la fine della riga viene tagliata via il parser vede qualcosa di simile s1="some very long string..........
(senza una fine "
) e quindi genera un errore di analisi?
Puoi dividere le lunghe file in più righe sfuggendo alle interruzioni di riga nella tua fonte in questo modo:
s1="some very long string.....\
...\
...."
Nella mia situazione, avevo \r\n
nel mio dizionario stringhe a virgoletta singola. Ho sostituito tutte le istanze di \r
con \\r
e \n
con \\n
e risolto il mio problema, restituendo correttamente le interruzioni di riga di escape nel dict valutato.
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
Ho affrontato un problema simile. Avevo una stringa che conteneva il percorso di una cartella in Windows, ad esempio C:\Users\
Il problema è che \
è un carattere di escape e quindi per usarlo nelle stringhe devi aggiungerne uno in più \
.
non corretto: C:\Users\
Corretta: C:\\\Users\\\
Anch'io ho avuto questo problema, anche se ci sono state risposte qui voglio un punto importante a questo dopo che
/
non dovrebbero esserci spazi vuoti.
Ho anche avuto questo messaggio di errore esatto, per me il problema è stato risolto aggiungendo un "\"
Si scopre che la mia lunga stringa, spezzata in circa otto righe con "\" alla fine, mancava un "\" su una riga.
Python IDLE non ha specificato un numero di riga in cui si trovava questo errore, ma ha evidenziato in rosso un'istruzione di assegnazione variabile totalmente corretta, scartandomi. L'effettiva istruzione stringa deformata (più righe lunghe con "\") era adiacente all'istruzione evidenziata. Forse questo aiuterà qualcun altro.
Nel mio caso, uso Windows, quindi devo usare virgolette doppie anziché singole.
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
Stavo ottenendo questo errore nella funzione postgresql. Ho avuto un lungo SQL che ho suddiviso in più righe con \ per una migliore leggibilità. Tuttavia, quello era il problema. Ho rimosso tutto e li ho fatti in una riga per risolvere il problema. Stavo usando pgadmin III.
Nel mio caso con Mac OS X, avevo la seguente dichiarazione:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
Stavo ottenendo l'errore:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
Dopo il passaggio a:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
Ha funzionato...
David
Il tuo si variable(s1)
estende su più righe. Per fare questo (cioè vuoi che la tua stringa si estenda su più righe), devi usare le virgolette triple ("" ").
s1="""some very long
string............"""
Ho avuto lo stesso problema durante l'accesso a qualsiasi directory del disco rigido. Quindi l'ho risolto in questo modo.
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
L'immagine sopra mostra un errore e un output risolto.