У мене вищезгадана помилка в 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\
проблема полягає в тому, що \
це символ втечі, і для того, щоб використовувати його в рядках, вам потрібно додати ще одну \
.
Неправильно: 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
На малюнку вище показана помилка та вирішений вихід.