2013-10-01 13 views
10

मैं एक वर्तमान में मौजूदा कार्यपत्रक लोड और पाठ फ़ाइल (कॉमा सेपरेटेड वैल्यू) स्क्रीनशॉट नीचे दिखाया गया है आयात करने के लिए कोशिश कर रहा हूँ " 'UTF8' कोडेक स्थिति 0 में बाइट 0xd0 डिकोड नहीं कर सकते हैं",अजगर फेंक त्रुटि

एक्सेल शीट :

enter image description here

पाठ फ़ाइल:

enter image description here

मैं कोड का उपयोग कर रहा बेलो दिखाए w:

# importing necessary modules for performing the required operation 
    import glob 
    import csv 
    from openpyxl import load_workbook 
    import xlwt 

    #read the text file(s) using the CSV modules and read the dilimiters and quoutechar 
    for filename in glob.glob("E:\Scripting_Test\Phase1\*.txt"): 
     spamReader = csv.reader((open(filename, 'rb')), delimiter=',') 


     #read the excel file and using xlwt modules and set the active sheet 
     wb = load_workbook(filename=r"E:\Scripting_Test\SeqTem\Seq0001.xls") 
     ws = wb.worksheets(0) 


     #write the data that is in text file to excel file 
     for rowx, row in enumerate(spamReader): 
      for colx, value in enumerate(row): 
       ws.write(rowx, colx, value) 

     wb.save() 

मैं एक निम्न त्रुटि संदेश मिल रहा है:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte

एक और सवाल: आप कैसे एक्सेल शीट में ए 3 स्तंभ से शुरू पाठ डेटा आयात करने के अजगर बता सकते हैं?

उत्तर

3

यूनिकोड एन्कोडिंग मुझे confuses, लेकिन आप कह रही द्वारा अवैध बाइट्स की अनदेखी करने के मूल्य मजबूर नहीं कर सकते हैं: unicode().decode('utf-8', 'ignore') raising UnicodeEncodeError

+0

धन्यवाद, एडम! मैंने बस ऐसा करने की कोशिश की लेकिन फिर भी वही त्रुटि। – Raj

1

हाय आप कर रहे हैं:

value = unicode(value, errors='ignore') 

यहाँ यूनिकोड के बारे में अधिक पढ़ने के लिए एक महान जवाब है सुनिश्चित करें कि आपके पास कोई दस्तावेज़ नहीं है जिसमें UTF-8 BOM

आप UTF-8 BOM codec के साथ उपयोग करने का प्रयास कर सकते हैं। आम तौर पर विंडोज + यूटीएफ +8 थोड़ा परेशानी हो सकती है। हालांकि वह चरित्र जो दिखा रहा है वह बीओएम नहीं हो सकता है।

2

openpyxl केवल OOXML प्रारूप (xlsx/xlsm) से संबंधित है। एक्सेल का उपयोग कर xls के बजाय xlsx फ़ाइल प्रारूप के रूप में सहेजने का प्रयास करें।

यदि आप xls फ़ाइल को xlsx में कोड में कनवर्ट करना चाहते हैं। नीचे दी गई सूची में से एक विकल्प का प्रयास करें:

  1. विंडोज में, आप भी excelcnv उपकरण का उपयोग कर सकते हैं xlxx को xls कन्वर्ट करने के लिए।
  2. लिनक्स में, कृपया this article देखें।
  3. या, आप पाइथन में xlrd का उपयोग करके xlsx में परिवर्तित कर सकते हैं। कृपया this Q&A देखें।
संबंधित मुद्दे