У меня есть вышеупомянутая ошибка в s1="some very long string............"
Кто-нибудь знает, что я делаю не так?
У меня есть вышеупомянутая ошибка в s1="some very long string............"
Кто-нибудь знает, что я делаю не так?
Ответы:
Вы не ставите "
до конца строки.
Используйте, """
если вы хотите сделать это:
""" a very long string ......
....that can span multiple lines
"""
У меня была эта проблема - в конце концов я понял, что причина в том, что я включил \
символы в строку. Если у вас есть какие-либо из них, «избегайте» их, \\
и это должно работать нормально.
r
перед строкой, чтобы избежать проблем.
(Предполагая, что в вашей строке нет / хотите разрывов строк ...)
Как долго эта строка действительно?
Я подозреваю, что есть предел тому, как долго может быть прочитана строка из файла или из командной строки, и поскольку конец строки отсекается, синтаксический анализатор видит что-то вроде s1="some very long string..........
(без окончания"
) и, таким образом, выдает ошибку синтаксического анализа?
Вы можете разбить длинные строки на несколько строк, избегая разрывов строк в вашем источнике, например:
s1="some very long string.....\
...\
...."
В моей ситуации \r\n
в моем словаре были строки из одинарных кавычек. Я заменил все экземпляры \r
с \\r
и \n
с \\n
и сосредоточил свой вопрос, правильно возвращения сбежавших разрывов строк в eval'ed Dict.
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
Я столкнулся с подобной проблемой. У меня была строка, которая содержала путь к папке в Windows, например C:\Users\
. Проблема в том, что \
это escape-символ, поэтому, чтобы использовать его в строках, вам нужно добавить еще один \
.
Неправильно: C:\Users\
Верный: C:\\\Users\\\
У меня тоже была эта проблема, хотя здесь были ответы, я хочу отметить важный момент после того, как
/
не должно быть пустых мест.
У меня также было это точное сообщение об ошибке, для меня проблема была исправлена добавлением "\"
Оказывается, в моей длинной строке, разбитой примерно на восемь строк с «\» в самом конце, отсутствовала буква «\» в одной строке.
Python IDLE не указывал номер строки, на которой была эта ошибка, но он выделял красным цветом абсолютно правильный оператор присваивания переменной, отбрасывая меня. Фактически искаженный оператор строки (несколько строк длиной с "\") был смежен с выделенным оператором. Может быть, это поможет кому-то еще.
В моем случае я использую Windows, поэтому я должен использовать двойные кавычки вместо одинарных.
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
Я получил эту ошибку в функции postgresql. У меня был длинный SQL, который я разбил на несколько строк с \ для лучшей читаемости. Однако это была проблема. Я удалил все и сделал их в одну строку, чтобы исправить проблему. Я использовал pgadmin III.
В моем случае с Mac OS X у меня было следующее утверждение:
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
Я получаю ошибку:
File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
^
SyntaxError: EOL while scanning string literal
После того, как я перехожу на:
model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")
Это сработало...
Дэвид
Ваш variable(s1)
охватывает несколько строк. Чтобы сделать это (т.е. вы хотите, чтобы ваша строка занимала несколько строк), вы должны использовать тройные кавычки ("" ").
s1="""some very long
string............"""
Я столкнулся с той же проблемой при доступе к любому каталогу жесткого диска. Тогда я решил это таким образом.
import os
os.startfile("D:\folder_name\file_name") #running shortcut
os.startfile("F:") #accessing directory
Рисунок выше показывает ошибку и разрешенный вывод.