Set a script to automatically detect character encoding in a plain-text-file in Python? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 8 जवाब

मैंने एक सेट किया है स्क्रिप्ट जो मूल रूप से एक बड़े पैमाने पर ढूँढता है और एक सादा पाठ दस्तावेज़ पर प्रतिस्थापित करता है।

फिलहाल यह एएससीआईआई, यूटीएफ -8, और यूटीएफ -16 (और शायद अन्य लोगों के साथ ठीक काम करता है, लेकिन मैंने इन तीनों एन्कोडेड दस्तावेजों का परीक्षण किया है) जब तक एन्कोडिंग स्क्रिप्ट के भीतर निर्दिष्ट हो (नीचे दिए गए उदाहरण कोड में यूटीएफ -16 निर्दिष्ट करता है।)

क्या स्क्रिप्ट को स्वचालित रूप से पता चलता है कि इनमें से कौन सी वर्ण एन्कोडिंग इनपुट फ़ाइल में उपयोग किए जा रहे हैं और स्वचालित रूप से आउटपुट फाइल के वर्ण एन्कोडिंग इनपुट फ़ाइल पर उपयोग किए जाने वाले एन्कोडिंग के समान?

  findreplace = [('term1', 'term2'),] inF = open (infile, 'rb') s = यूनिकोड (inF (रीड), 'यूटीएफ -16') इनफ़्लोस्ट = एस। रीपल (जोड़े [0], जोड़ी [1]) एस = आउटटेक्स्ट आउट एफ = ओपन (आउटफाइल, 'वाईब') में जोड़े के लिए INF.close () OutF.write (outtext.encode ('utf-16')) outF.close ()  

धन्यवाद!

जेएफ सेबस्टियन ने पोस्ट किया: कोशिश करें।

ध्यान रखें कि सामान्य तौर पर यह पता लगाना असंभव है कि हर इनपुट फ़ाइल का ई अक्षर एन्कोडिंग 100% मज़बूती से - दूसरे शब्दों में, संभव इनपुट फ़ाइलें हैं जो कि कई वर्ण एन्कोडिंग के समान समान रूप से व्याख्या की जा सकती हैं, और यह कहने का कोई तरीका नहीं हो सकता है कि कौन सा एक वास्तव में इस्तेमाल किया जा रहा है Chardet कुछ प्रयोगिक विधियों का उपयोग करता है और आपको विश्वास स्तर बताता है कि यह कैसे सुनिश्चित होता है कि यह वर्ण एन्कोडिंग यह बताता है कि वास्तव में सही है।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -