Searching and replacing cent symbol in Python -


  ओएस: सेंदोस 6.5 पायथन संस्करण: 2.7.5  

मेरे पास है जानकारी के निम्नलिखित नमूने के साथ एक फाइल मैं प्रतिशत प्रतीक की खोज और प्रतिस्थापित करना चाहूंगा और $ 0 से प्रतिस्थापित करूँगा Infront।

  अल्फा $ 1.00 बीटा ¢ 55 & lt; & lt; & lt; & lt; नोट चार्ली $ 2.00 डेल्टा ¢ 23 & lt; & lt; & lt; नोट  

मुझे यह इस तरह दिखना है:

  अल्फा $ 1.00 बीटा $ 0.55 & lt; & lt; & lt; & lt; नोट चार्ली $ 2.00 डेल्टा $ 0.23 & lt; & lt; & lt; नोट  

तो कमांड लाइन (जो काम करता है) में यह कोड है:

  sed 's / ¢ / $ 0. / g' * फ़ाइल का नाम * < / कोड>  

हालांकि कोड के लिए अजगर का प्रयोग करके यह काम नहीं करता है:

  आयात उपप्रोसेस हैलो = सबप्रोसेस। ('बिल्ली डेटाफ़ाइल' + '| sed "s / ¢  

जब भी मैं ¢ प्रतीक पेस्ट करने की कोशिश करता हूं, तब एक त्रुटि लगता है।

थोड़ा करीब, जब मैं यूनिकोड को पायथन में साइन साइन करता हूं, तो यह नीचे आता है:

  प्रिंट (u "\ u00A2")  

जब मैं मेरी डेटाफाइल बिल्ली, यह वास्तव में ¢ संकेत के रूप में दिखाता है, एक याद आ रही है। & Lt; & lt; यह निश्चित नहीं है कि यह कोई मदद है

मुझे लगता है कि जब मैं यूनिकोड के साथ सैड करने की कोशिश कर रहा हूं, ¢ से पहले जोड़ा प्रतीक मुझे खोज और बदलने की इजाजत नहीं दे रहा है।

त्रुटि कोड जब कोशिश कर यूनिकोड:

  हैलो = subprocess.call (यू "बिल्ली datafile | sed 's / \ uxA2 / $ 0. / जी'", खोल = सच) सिंटैक्स त्रुटि: (यूनिकोड त्रुटि) 'unicodeescape' कोडेक स्थिति 25-26 में बाइट्स डिकोड नहीं कर सकते हैं: छोटा कर दिया \ uXXXX बचने  

u00A2 को uxA2 फिक्सिंग, मैं इस मिल:

  Sed: -e अभिव्यक्ति # 1, चार 7: `1 ' 

किसी भी विचार / विचारों के लिए अज्ञात विकल्प?

दोनों उदाहरणों में मुझे नीचे त्रुटि मिलती है: < / P>

  [root @ centOS user] # python test2.py ट्रेसबैक (सबसे हाल ही में कॉल अंतिम): फ़ाइल "test2.py", पंक्ति 3, & lt; मॉड्यूल & gt; डेटा = data.decode ( 'utf-8') # डिकोड तुरंत "/usr/local/lib/python2.7/encodings/utf_8.py" यूनिकोड फ़ाइल के लिए, लाइन 16, डिकोड वापसी codecs.utf_8_decode में (इनपुट, त्रुटियों , यह सच है) UnicodeDecodeError: 'UTF8' कोडेक स्थिति 6 में बाइट 0xa2 डिकोड नहीं कर सकते: अवैध शुरू बाइट [जड़ @ CentOS उपयोगकर्ता] Traceback test1.py # अजगर (सबसे हाल कॉल पिछले): फ़ाइल "test1.py", लाइन 11 , & Lt; मॉड्यूल & gt; hello_unicode = hello_utf8.decode ( 'utf-8') फ़ाइल "/usr/local/lib/python2.7/encodings/utf_8.py", रेखा 16, डिकोड वापसी codecs.utf_8_decode (इनपुट, त्रुटियों, यह सच है) UnicodeDecodeError में: 'Utf8' कोडेक स्थिति 6 में बाइट 0xa2 डीकोड नहीं कर सकता: अमान्य प्रारंभ बाइट  

यह फ़ाइल की बिल्ली है:

  [root @ centOS उपयोगकर्ता] # बिल्ली डेटाफ़ाइल अल्फा ¢ 79  

यह डेटाफ़ाइल के नैनो है:

  अल्फा ¿½79  
< P> यह डेटाफ़ाइल का विम है:

  [root @ centOS user] # vim fbasdf अल्फा एक ¢ 79 ~  

आपके सभी के लिए फिर से धन्यवाद मदद लोग

उत्तर !!

रोब और थॉमस से एसईडी आउटपुट काम करता है। फ़ाइल प्रारूप को charset = iso-8859-1 के रूप में सहेजा गया था मैं यूटीएफ -8 प्रारूप पात्रता के लिए दस्तावेज खोज नहीं पा रहा था।

पहचान की गई फ़ाइल वर्णसेट:

  फ़ाइल -बी डेटाफ़ाइल पाठ / सादे; Charset = iso-8859-1  

फ़ाइल को बदलने के लिए निम्न कोड का उपयोग किया गया है:

  iconv -f iso-8859-1 -t utf8 datafile & gt; स्टीफन थॉमस का जवाब और उस पर विस्तार:  
     

कोड> उपप्रक्रिया आयात करें # जब तक आप कर सकते हैं तब तक सभी स्ट्रिंग यूनिकोड में रखें। Cmd_unicode = u "sed '/ \ u00A2 / $ 0. / g' & lt; datafile # # जब आप उन्हें भेजते हैं तो उन्हें एन्कोडेड बाइट स्ट्रिंग में कनवर्ट करें # .check_output (), NOT .call () cmd_utf8 = cmd_unicode.encode ( 'utf-8') hello_utf8 = subprocess.check_output (cmd_utf8, खोल = सच) # डिकोड रसीद hello_unicode पर तुरंत यूनिकोड के लिए किसी भी भेजे बाइट स्ट्रिंग = hello_utf8.decode ( 'utf-8') # और आप आपका उत्तर मुद्रित हैलो_इनिकोड

उपरोक्त कोड "यूनिकोड सैंडविच" के उपयोग को दर्शाता है: बाहर के बाइट्स, अंदर पर यूनिकोड इस सरल उदाहरण के लिए, आप पायथन में सब कुछ आसानी से कर सकते हैं:

  डेटाफ़ाइल के रूप में खुले ('डेटाफ़ाइल') के साथ: डेटा = डेटाफाइल.रेड ( ) # बाइट्स डेटा में डेटा = डेटा डाईकोड ('यूटीएफ -8') # डीकोड तुरंत यूनिकोड डेटा = डेटा.रेलेफ़ेस (यू '\ xa2', '' 0 $ '') # यूनिकोड प्रिंट डेटा में सभी आपरेशन # इम्पलिसस आउटपुट के दौरान सांकेतिक शब्दों में बदलना  

Comments

Popular posts from this blog

Member with no value in F# -

java - Joda Time Interval Not returning what I expect -

c# - Showing a SelectedItem's Property -