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

مشكلة في كتابة مسارات الملفات في بايثون

Adam Ebrahim

السؤال

أحاول أن أقوم بتخزين مسار مجلد سطح المكتب في متغير 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

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

يمكنك إستعمال العلمة / بدلًا من العلامة \ وسيعمل كل شيء على ما يرام في 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

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

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

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

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

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

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...