python - त्रुटि UnicodeDecodeError: 'utf-8' कोडेक 0xff को स्थिति 0 में बाइट को डिकोड नहीं कर सकता है: बाइट स्टार्ट बाइट




python-3.x (9)

CSV के विवरण ( r ) को पढ़ें ।csv फ़ाइल और utf8 द्वारा एनकोड करें। यदि त्रुटि होती है तो त्रुटि को अनदेखा करें, यह केवल निम्नलिखित कोड द्वारा किया गया है।

with open('details.csv', 'r',encoding="utf8", errors='ignore') as csvDataFile:
    csvReader = csv.DictReader(csvDataFile)

https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools

उपरोक्त साइट पर "process.py" संकलन करते समय एक त्रुटि हुई।

 python tools/process.py --input_dir data --            operation resize --outp
ut_dir data2/resize
data/0.jpg -> data2/resize/0.png

ट्रेसबैक (सबसे हालिया कॉल अंतिम):

File "tools/process.py", line 235, in <module>
  main()
File "tools/process.py", line 167, in main
  src = load(src_path)
File "tools/process.py", line 113, in load
  contents = open(path).read()
      File"/home/user/anaconda3/envs/tensorflow_2/lib/python3.5/codecs.py", line 321, in decode
  (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode     byte 0xff in position 0: invalid start byte

त्रुटि का कारण क्या है? पायथन का संस्करण 3.5.2 है।


HitHere, आपको पहले "GoogleNews-vectors-negative300.bin.gz" फ़ाइल को लोड करना चाहिए, फिर इसे उबंटू में इस कमांड द्वारा निकालें: gunzip -k GoogleNews-vectors-negative300.bin.gz। [मैन्युअल रूप से निकालने की सिफारिश नहीं की जाती है]। दूसरी बात, आपको इन आदेशों को पिरामिड 3 में लागू करना चाहिए:

import gensim model = gensim.models.Word2Vec.load_word2vec_format('./model/GoogleNews-vectors-negative300.bin', binary=True) . मुझे उम्मीद है कि यह उपयोगी होगा।


इसके समान एक मुद्दा था, डीकोड करने के लिए UTF-16 का उपयोग कर समाप्त हुआ। मेरा कोड नीचे है।

with open(path_to_file,'rb') as f:
    contents = f.read()
contents = contents.rstrip("\n").decode("utf-16")
contents = contents.split("\r\n")

यह फ़ाइल सामग्री को आयात के रूप में ले जाएगा, लेकिन यह UTF प्रारूप में कोड लौटा देगा। वहाँ से इसे डीकोड करके लाइनों द्वारा अलग किया जाएगा।


पढ़ने के लिए फ़ाइल का पथ जांचें। जब तक मैंने कार्य निर्देशिका प्रस्तुत करने के लिए पथ का नाम नहीं बदला तब तक मेरा कोड मुझे त्रुटियां देता रहा। त्रुटि थी:

newchars, decodedbytes = self.decode(data, self.errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

मुझे एक ऐसी ही समस्या है। मैं टेंसरफ़्लो / मॉडल / उद्देश्य_डेट में एक उदाहरण चलाने की कोशिश करता हूं और उसी संदेश को पूरा करता हूं। Python3 को Python2 में बदलने का प्रयास करें


मैं एक ही त्रुटि से पीड़ित होने पर इस धागे पर आया हूं, कुछ शोध करने के बाद मैं पुष्टि कर सकता हूं, यह एक त्रुटि है जो तब होता है जब आप UTF-8 के साथ UTF-16 फ़ाइल को डिकोड करने का प्रयास करते हैं।

UTF-16 के साथ पहला अक्षर (UTF-16 में 2 बाइट्स) एक बाइट ऑर्डर मार्क (BOM) है , जिसका उपयोग डिकोडिंग संकेत के रूप में किया जाता है और डिकोड किए गए स्ट्रिंग में एक चरित्र के रूप में प्रकट नहीं होता है। इसका मतलब है कि पहली बाइट या तो एफई या एफएफ होगी और दूसरी, दूसरी।

असली उत्तर का पता चलने के बाद मैंने उसे संपादित किया


यदि आप किसी सीरियल पोर्ट से डेटा प्राप्त कर रहे हैं, तो सुनिश्चित करें कि आप सही बॉड्रेट (और अन्य कॉन्फिग) का उपयोग कर रहे हैं: डिकोडिंग ( यूटीएफ -8 ) का उपयोग करके, लेकिन गलत कॉन्फिग से वही त्रुटि उत्पन्न होगी

यूनिकोडडॉफॉर्सेट: 'utf-8' कोडक 0xff को बाइट नहीं कर सकता है 0 स्थिति में: अमान्य प्रारंभ बाइट

linux उपयोग पर अपने सीरियल पोर्ट कॉन्फिग को stty -F /dev/ttyUSBX -a लिए: stty -F /dev/ttyUSBX -a


यदि संभव हो, तो फ़ाइल को टेक्स्ट एडिटर में खोलें और एन्कोडिंग को UTF-8 में बदलने का प्रयास करें। अन्यथा यह ओएस स्तर पर प्रोग्राम करते हैं।


सिर्फ इस्तमाल करे

base64.b64decode(a) 

के बजाय

base64.b64decode(a).decode('utf-8')






utf-8