it-swarm.asia

(خطأ unicode) لا يمكن لبرنامج الترميز "unicodeescape" فك تشفير البايتات في الموضع 2-3: الهروب\UXXXXXXXX

أحاول قراءة ملف .csv في Python (Spyder) ولكني لا زلت أتلقى خطأً. رمز بلدي:

import csv

data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)  
print(data)

أحصل على الخطأ التالية:

SyntaxError: (خطأ unicode) لا يمكن لبرنامج الترميز "unicodeescape" فك تشفير البايتات في الموضع 2-3: الهروب\UXXXXXXXX

لقد حاولت استبدال\مع\أو\و/وحاولت وضع r قبل "C .. لكن كل هذه الأشياء لم تنجح.

91
Miesje

يحدث هذا الخطأ لأنك تستخدم سلسلة عادية كمسار. يمكنك استخدام أحد الحلول التالية لإصلاح مشكلتك.

  1. ما عليك سوى وضع r قبل أن تقوم السلسلة العادية بتحويل السلسلة العادية إلى سلسلة خام:

pandas.read_csv(r"C:\Users\DeePak\Desktop\myac.csv")

2:

pandas.read_csv("C:/Users/DeePak/Desktop/myac.csv")

3:

pandas.read_csv("C:\\Users\\DeePak\\Desktop\\myac.csv")
131
DeePak M. Birajdar

يتم تفسير الخط المائل العكسي الأول في السلسلة الخاصة بك كحرف خاص ، لأنه في الحقيقة يتبعه حرف "U" يتم تفسيره على أنه بداية نقطة رمز يونيكود.

لإصلاح هذا تحتاج إلى الهروب من خطوط مائلة عكسية في السلسلة. لا أعرف بيثون على وجه التحديد ولكني أعتقد أنك تفعل ذلك من خلال مضاعفة خطوط مائلة عكسية:

data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
21
thomasrutter

يمكنك فقط وضع r أمام السلسلة مع المسار الفعلي الخاص بك ، والذي يدل على سلسلة خام. فمثلا:

data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
13
Mohit Solanki

حاول كتابة مسار الملف كـ "C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener" ، أي بخط مائل عكسي مزدوج بعد محرك الأقراص بدلاً من "C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"

9
Ibrahim Isa

حسب السلسلة الحرفية :

يمكن إحاطة القيم الحرفية للسلسلة داخل علامات اقتباس مفردة (أي '...') أو علامات اقتباس مزدوجة (أي "..."). يمكن أيضًا تضمينها في مجموعات مطابقة من ثلاثة علامات اقتباس مفردة أو مزدوجة (يشار إليها عمومًا باسم سلاسل ذات علامات ثلاثية).

يتم استخدام حرف الخط المائل العكسي (مثل \) للهروب من الأحرف التي سيكون لها معنى خاص ، مثل السطر الجديد أو الخط المائل العكسي نفسه أو حرف علامة الاقتباس. يمكن اختياريا أن تكون بادئة السلسلة الحرفية بحرف r أو R. تسمى هذه السلاسل السلاسل الأولية وتستخدم قواعد مختلفة لتسلسل هروب الخط المائل العكسي.

في السلاسل الثلاثية المقتبسة ، السطور الجديدة غير المنقوصة و علامتي الاقتباس مسموح بها ، باستثناء أن ثلاثة علامتي اقتباس غير موصوفتين في صف ينهي السلسلة.

ما لم تكن البادئة r أو R موجودة ، يتم تفسير تسلسل الهروب في السلاسل وفقًا لقواعد مشابهة لتلك المستخدمة في المعيار C.

من الناحية المثالية تحتاج إلى استبدال الخط:

data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")

إلى أي من الأحرف التالية:

  • باستخدام raw بادئة و علامات اقتباس مفردة (أي '...'):

    data = open(r'C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener')
    
  • باستخدام علامات اقتباس مزدوجة (أي "...") والتهرب من حرف الخط المائل العكسي (أي \):

    data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
    
  • باستخدام علامات اقتباس مزدوجة (أي "...") وشخصية إعادة التوجيه (مثل /):

    data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
    
6
DebanjanB

لقد نجح هذا الأمر من خلال تحييد "\" بواسطة f = open ('F: \\ file.csv')

3
vinod

اعتبره كسلسلة خام. مجرد إجابة بسيطة ، إضافة ص قبل مسار ويندوز الخاص بك.

import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)  
print(data)
3
Ramineni Ravi Teja

مجرد وضع ص في الجبهة يعمل بشكل جيد.

على سبيل المثال:

  white = pd.read_csv(r"C:\Users\hydro\a.csv")
3
Hydrogirl

يجب أن يعمل double\لنظام Windows ، ولكن لا يزال عليك الاهتمام بالمجلدات التي ذكرتها في المسار. كل منهم (باستثناء اسم الملف) يجب أن يكون موجودا. وإلا سوف تحصل على خطأ.

0
G4W