web-dev-qa-db-ja.com

python:SyntaxError:文字列リテラルをスキャン中のEOL

s1="some very long string............"に上記のエラーがあります

誰かが私が間違っていることを知っていますか?

あなたは行の終わりの前に"を置かないでください。

これを実行したい場合は"""を使用してください。

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

私はこの問題を抱えていました - 結局、その理由は文字列に\文字を含めることになったことです。あなたがこれらのどれかを持っているなら、\\でそれらを「エスケープ」すればそれはうまくいくはずです。

70
Chris H

(文字列に改行がない/したい場合...)

この文字列は実際にどのくらいですか?

ファイルまたはコマンドラインから読み取った行の長さに制限があると思われます。行の終わりがパーサーから切り取られるため、パーサーはs1="some very long string..........のようなもの("の終了なし)を認識し、解析エラーをスローします。 ?

次のようにソースの改行をエスケープすることにより、長い行を複数の行に分割できます。

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

私の状況では、一重引用符で囲まれた辞書文字列に\r\nがありました。 \rのすべてのインスタンスを\\rおよび\n\\nに置き換えたところ、評価された辞書でエスケープされた改行が正しく返されるようになり、問題が修正されました。

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

私は同様の問題に直面しました。私はWindowsのフォルダへのパスを含む文字列を持っていました。 C:\Users\問題は、\がエスケープ文字であるため、文字列で使用するには、もう1つ\を追加する必要があるということです。

不正確:C:\Users\

正しい:C:\\\Users\\\

4
Ashish kulkarni

私もこの問題を抱えていましたが、ここに答えがありましたが、/の後にこれに重要な点を指摘したいのですが、空のスペースがあってはいけません。

4
madhu131313

私の場合は、Windowsを使用しているので、単一引用符ではなく二重引用符を使用する必要があります。

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

私はこの正確なエラーメッセージも持っていました、私のために問題は "\"を追加することによって修正されました

最後の "\"で約8行に分割された私の長い文字列には、1行に "\"がありませんでした。

Python IDLEはこのエラーが発生した行番号を指定していませんでしたが、完全に正しい変数代入文を赤で強調していましたので、私は見送りました。実際の不整形文字列ステートメント( "\"で複数行)は、強調表示されているステートメントに隣接していました。たぶんこれは他の人を助けるでしょう。

2
user12711

Postgresql関数でこのエラーが出ました。読みやすくするために\を使って複数の行に分割した長いSQLがありました。しかし、それが問題でした。問題を解決するために、すべてを削除して1行にまとめました。私はpgadmin IIIを使っていました。

2
Ram Dwivedi

あなたのvariable(s1)は複数行にわたります。これを行うには(つまり、文字列を複数行にまたがるようにしたい場合)、三重引用符( "" ")を使用する必要があります。

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

私の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")

出来た...

ダビデ

1
us_david