اذهب إلى المحتوى

السؤال

نشر

أحاول أن أقوم بتخزين مسار مجلد سطح المكتب في متغير path كالتالي:

>>> x = 'C:\Users\name\Desktop'

ولكن أحصل على الخطأ التالي:

  File "<stdin>", line 1

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

وعندما أحاول تخزين مسارات أخرى وطباعتها، يتم طباعتها في سطرين مختلفين كالتالي:

>>> x = 'C:\Windows\System32\networklist'
>>> print(x)
C:\Windows\System32
etworklist
>>> 

 

Recommended Posts

  • 1
نشر

يعود السبب لوجود \ backslash وهو محرف تحكم.

مثلا في الحالة الثانية لاحظ وجود n\ وهذا رمز تحكم لعمل سطر جديد.

يمكن حل المشكلة بكتابة حرف r قبل السلسلة النصية التي تعبر عن المسار ليتم اعتبارها row string ولا يتم تفسير محتواها:

>>> x = r'C:\Users\name\Desktop'
       ^^^

 

  • 1
نشر

يمكنك حل هذه المشكلة بأكثر من طريقة كالتالي:

يمكنك إستعمال العلمة / بدلًا من العلامة \ وسيعمل كل شيء على ما يرام في Windows و Linux و MacOS، كالتالي:

>>> x = 'C:/Users/name/Desktop'

أو بإمكانك أن تستعمل علامة \\ (double backslash) كالتالي:

>>> x = 'C:\\Users\\name\\Desktop'

كذلك يمكنك أن تستخدم سلسلة حروف خام raw string literals من خلال إضافة حرف r قبل النص مباشرة كالتالي:

>>> x = r'C:\Users\name\Desktop'

ملاحظة: لا يمكن أن تنتهي raw string literals بعلامة \ حيث سيسبب هذا الأمر الخطأ التالي:

SyntaxError: EOL while scanning string literal

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...