Eu tenho o erro mencionado acima em s1="some very long string............"
Alguém sabe o que estou fazendo de errado?
Eu tenho o erro mencionado acima em s1="some very long string............"
Alguém sabe o que estou fazendo de errado?
Respostas:
Você não está colocando um "
antes do final da linha.
Use """
se você quiser fazer isso:
""" a very long string ......
....that can span multiple lines
"""
Eu tive esse problema - acabei descobrindo que o motivo era que eu incluí \
caracteres na string. Se você tiver alguma dessas opções, "escape" delas \\
e ela deve funcionar bem.
r
antes da string para evitar que eles causem problemas.
(Supondo que você não tenha / queira quebras de linha na sua string ...)
Quanto tempo dura essa string?
Eu suspeito que há um limite para quanto tempo uma linha pode ser lida em um arquivo ou na linha de comando e, como o final da linha é cortado, o analisador vê algo como s1="some very long string..........
(sem final "
) e, portanto, gera um erro de análise?
Você pode dividir linhas longas em várias linhas, escapando as quebras de linha em sua fonte desta maneira:
s1="some very long string.....\
...\
...."
Na minha situação, eu tinha \r\n
em minhas cadeias de dicionário de aspas simples. Substituí todas as instâncias de \r
with \\r
e \n
with \\n
e ele corrigiu meu problema, retornando corretamente quebras de linha escapadas no ditado avaliado.
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
Eu enfrentei um problema semelhante. Eu tinha uma string que continha o caminho para uma pasta no Windows, por exemplo, C:\Users\
o problema é que \
é um caractere de escape e, portanto, para usá-lo em strings, você precisa adicionar mais um \
.
Incorreta: C:\Users\
Corrigir: C:\\\Users\\\
Eu também tive esse problema, embora houvesse respostas aqui, quero um ponto importante para isso depois que
/
não deve haver espaços vazios.
Eu também recebi essa mensagem de erro exata. Para mim, o problema foi corrigido adicionando um "\"
Acontece que minha longa corda, dividida em oito linhas com "\" no final, estava faltando um "\" em uma linha.
O Python IDLE não especificou um número de linha em que esse erro estava ativado, mas destacou em vermelho uma instrução de atribuição de variável totalmente correta, o que me excitou. A instrução de cadeia de caracteres deformada real (várias linhas com "\") era adjacente à instrução sendo destacada. Talvez isso ajude alguém.
No meu caso, eu uso o Windows, então tenho que usar aspas duplas em vez de simples.
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
Eu estava recebendo esse erro na função postgresql. Eu tinha um SQL longo, que dividi em várias linhas com \ para melhor legibilidade. No entanto, esse era o problema. Eu removi todos e os criei em uma linha para corrigir o problema. Eu estava usando o pgadmin III.
No meu caso com o Mac OS X, tive a seguinte declaração:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
Eu estava recebendo o erro:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
Depois de mudar para:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
Funcionou...
David
Você pode tentar isso:
s = r'long\annoying\path'
s = r'long\annoying\path\\'
.
Seu variable(s1)
abrange várias linhas. Para fazer isso (ou seja, você deseja que sua cadeia de caracteres abranja várias linhas), é necessário usar aspas triplas ("" ").
s1="""some very long
string............"""
Eu havia enfrentado o mesmo problema ao acessar qualquer diretório de disco rígido. Então eu resolvi dessa maneira.
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
A imagem acima mostra um erro e uma saída resolvida.