পাইথন: সিনট্যাক্স এরির: EOL স্ট্রিং আক্ষরিক স্ক্যান করার সময়


164

আমার উপরে উল্লিখিত ত্রুটি আছে s1="some very long string............"

কেউ কি জানে যে আমি কী ভুল করছি?


1
আপনি কি নিশ্চিত যে এটি সঠিকভাবে বন্ধ হয়ে যাচ্ছে এবং কোথাও অনস্ক্রিপ্ট উদ্ধৃতি নেই?
কোয়ান্টাম স্যুপ

অনস্কেপড কোটগুলি অন্য বিশ্লেষণ ত্রুটি ফেলে।
জানু

উত্তর:


224

আপনি "লাইন শেষ হওয়ার আগে একটি রাখছেন না ।

"""আপনি এটি করতে চাইলে ব্যবহার করুন :

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

17
এবং কেবলমাত্র তিনটি উদ্ধৃতি চিহ্ন ব্যবহার করতে সাবধান, আমার দুর্ঘটনাক্রমে চারটি হয়েছিল এবং ত্রুটিটি এসেছিল
ওরেগানো

1
স্ট্রিং এবং ভেরিয়েবলের সাথে মিল রেখে কী বলা যায়?
ড্যানিয়েল স্প্রিংগার

92

আমার এই সমস্যাটি ছিল - আমি শেষ পর্যন্ত কাজ করেছিলাম কারণটির কারণ হ'ল আমি \স্ট্রিংয়ে চরিত্রগুলি অন্তর্ভুক্ত করেছি । আপনার যদি এগুলির মধ্যে কোনও থাকে তবে এগুলি "পলায়ন" করুন \\এবং এটি ভাল কাজ করা উচিত।


2
@ লিয়ো তাদের 'পালানো চরিত্র' বলা হয় এবং এটি বেশ মানক pretty rস্ট্রিংগুলির সামনে সমস্যা তৈরি করতে এড়ানোর জন্য আপনি একটি পদক্ষেপ রাখতে পারেন।
এরিক

17

(ধরে নিলাম আপনার স্ট্রিংয়ে লাইন ব্রেক নেই / চান না ...)

এই স্ট্রিংটি আসলে কতক্ষণ?

আমি সন্দেহ করি যে কোনও ফাইল থেকে বা কমান্ডলাইন থেকে পড়া লাইন কতক্ষণ পড়তে পারে তার সীমা রয়েছে এবং লাইনটির শেষটি পার্সার কেটে ফেলার সাথে সাথে s1="some very long string..........(শেষ না করে ") এমন কিছু দেখায় এবং এভাবে পার্সিং ত্রুটি ছুঁড়ে দেয়?

আপনি আপনার উত্সে লাইনব্রেকগুলি এড়াতে দীর্ঘ লাইনগুলি একাধিক লাইনে বিভক্ত করতে পারেন:

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

8

আমার পরিস্থিতিতে \r\nআমার একক-উদ্ধৃত অভিধান স্ট্রিং ছিল। আমি সমস্ত উদাহরণ প্রতিস্থাপিত \rসঙ্গে \\rএবং \nসঙ্গে \\nএবং এটি আমার সমস্যা সংশোধন করা হয়েছে, সঠিকভাবে eval'ed অভি মধ্যে পলান লাইন ব্রেক ফিরিয়ে আনে।

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

6

আমিও একই সমস্যার মুখোমুখি হয়েছি। আমার কাছে একটি স্ট্রিং ছিল যা উইন্ডোজের কোনও ফোল্ডারে পাথ রেখেছিল উদাহরণস্বরূপ C:\Users\সমস্যাটি \হ'ল একটি পালানোর চরিত্র এবং তাই স্ট্রিংগুলিতে এটি ব্যবহার করার জন্য আপনাকে আরও একটি যুক্ত করতে হবে \

ত্রুটিপূর্ণ: C:\Users\

সঠিক: C:\\\Users\\\


4

আমারও এই সমস্যাটি ছিল, যদিও এখানে উত্তর থাকলেও আমি /খালি জায়গাগুলি না থাকার পরে আমি এটির একটি গুরুত্বপূর্ণ বিষয়টি বলতে চাই it এটি সম্পর্কে সচেতন থাকুন


2

আমার এই সঠিক ত্রুটি বার্তাটিও ছিল, আমার জন্য একটি "\" যুক্ত করে সমস্যার সমাধান করা হয়েছিল

দেখা যাচ্ছে যে আমার দীর্ঘ স্ট্রিংটি "\" দিয়ে প্রায় শেষের দিকে প্রায় আট লাইনে বিভক্ত ছিল, একটি লাইনে একটি "\" অনুপস্থিত ছিল।

পাইথন আইডিএল কোনও লাইন নম্বর নির্দিষ্ট করে নি যে এই ত্রুটিটি চালু ছিল তবে এটি আমাকে পুরোপুরি ফেলে দিয়ে পুরোপুরি সঠিক ভেরিয়েবল অ্যাসাইনমেন্ট স্টেটমেন্টটিকে লাল-হাইলাইট করেছে। প্রকৃত মিসপ্পেন স্ট্রিং স্টেটমেন্ট ("\" সহ একাধিক লাইন দীর্ঘ) বিবৃতিটি হাইলাইট হওয়ার সাথে সংলগ্ন ছিল। সম্ভবত এটি অন্য কাউকে সহায়তা করবে।


2

আমার ক্ষেত্রে আমি উইন্ডোজ ব্যবহার করি তাই আমাকে সিঙ্গেলের পরিবর্তে ডাবল কোট ব্যবহার করতে হবে।

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

2

পোস্টগ্রিস্কল ফাংশনে আমি এই ত্রুটিটি পাচ্ছিলাম। আমার একটি দীর্ঘ এসকিউএল ছিল যা আমি আরও ভাল পাঠযোগ্যতার জন্য একাধিক লাইনে বিভক্ত হয়েছিল। তবে, সমস্যা ছিল। আমি সমস্ত অপসারণ করেছি এবং এগুলি সমাধান করার জন্য তাদের এক লাইনে রেখেছি। আমি তৃতীয় পেগডমিন ব্যবহার করছিলাম।


2

ম্যাক ওএস এক্স-এর ক্ষেত্রে আমার নিম্নলিখিত বিবৃতি ছিল:

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

এটা কাজ করেছে...

ডেভিড


2

আপনি এটি চেষ্টা করতে পারেন:

s = r'long\annoying\path'

1
এটি সেরা উত্তর। চেষ্টাও করতে পারেন s = r'long\annoying\path\\'
শাহহার_ম

1

আপনার variable(s1)spans একাধিক লাইন। এটি করার জন্য (যেমন আপনার স্ট্রিংটি একাধিক লাইনের বিস্তৃত হওয়া চাই), আপনাকে ট্রিপল কোট ("" ") ব্যবহার করতে হবে।

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

1

এক্ষেত্রে তিনটি সিঙ্গল কোটেশন বা তিনটি ডাবল কোটেশন দুটোই কাজ করবে! উদাহরণ স্বরূপ:

    """Parameters:
    ...Type something.....
    .....finishing statement"""

অথবা

    '''Parameters:
    ...Type something.....
    .....finishing statement'''

0

বেশিরভাগ পূর্ববর্তী উত্তরগুলি সঠিক এবং আমার উত্তরটি অ্যারোনস্টার্লিংয়ের সাথে খুব একইরকম, আপনি 3 টি একক উদ্ধৃতি s1 = '' 'কিছু খুব দীর্ঘ স্ট্রিংও করতে পারেন ............' ''


0

কোনও হার্ড ড্রাইভ ডিরেক্টরি অ্যাক্সেস করার সময় আমি একই সমস্যার মুখোমুখি হয়েছিলাম। তারপরে আমি এটিকে সমাধান করেছি।

 import os
 os.startfile("D:\folder_name\file_name") #running shortcut
 os.startfile("F:") #accessing directory

এখানে চিত্র বর্ণনা লিখুন

উপরের চিত্রটি একটি ত্রুটি এবং সমাধান হওয়া আউটপুট দেখায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.