मैं यमल फ़ाइलों के साथ काम कर रहा हूं जिन्हें मानव पठनीय और संपादन योग्य होना है, लेकिन इसे पायथन कोड से भी संपादित किया जाएगा। मैं पाइथन का उपयोग कर रहा हूं 2.7.3पाययामल - विशेष वर्णों के साथ यूनिकोड डंप करें (यानी उच्चारण)
फ़ाइल को उच्चारण को संभालने की आवश्यकता है (ज्यादातर फ्रेंच में पाठ को संभालने के लिए)।
यहाँ मेरी मुद्दे का एक नमूना है:
import codecs
import yaml
file = r'toto.txt'
f = codecs.open(file,"w",encoding="utf-8")
text = u'héhéhé, hûhûhû'
textDict = {"data": text}
f.write('write unicode : ' + text + '\n')
f.write('write dict : ' + unicode(textDict) + '\n')
f.write('yaml dump unicode : ' + yaml.dump(text))
f.write('yaml dump dict : ' + yaml.dump(textDict))
f.write('yaml safe unicode : ' + yaml.safe_dump(text))
f.write('yaml safe dict : ' + yaml.safe_dump(textDict))
f.close()
लिखा फ़ाइल है:
write unicode : héhéhé, hûhûhû
write dict : {'data': u'h\xe9h\xe9h\xe9, h\xfbh\xfbh\xfb\n'}
yaml dump unicode : "h\xE9h\xE9h\xE9, h\xFBh\xFBh\xFB"
yaml dump dict : {data: "h\xE9h\xE9h\xE9, h\xFBh\xFBh\xFB"}
yaml safe unicode : "h\xE9h\xE9h\xE9, h\xFBh\xFBh\xFB"
yaml safe dict : {data: "h\xE9h\xE9h\xE9, h\xFBh\xFBh\xFB"}
YAML डंप YAML साथ लोड करने के लिए पूरी तरह से काम करता है, लेकिन यह मानव पठनीय नहीं है।
जैसा कि आप उदाहरण कोड में देख सकते हैं, परिणाम एक ही है जब मैं एक नियम के यूनिकोड प्रतिनिधित्व लिखने की कोशिश करता हूं (मुझे नहीं पता कि यह संबंधित है या नहीं)।
मैं डंप को उच्चारण के साथ पाठ को शामिल करना चाहता हूं, न कि यूनिकोड कोड। क्या यह संभव है?
यह पायथन ** 2 ** मुझे लगता है? मैं पाइथन 2 यूनिकोड हैंडलिंग में बहुत दृढ़ नहीं हूं, लेकिन आप इसके बजाय 'yaml.safe_dump' को आजमा सकते हैं, जो पाइथन-विशिष्ट प्रारूप के बजाय कार्यान्वयन-तटस्थ प्रारूप में डेटा को डंप करता है। – deceze
ओह हाँ क्षमा करें, यह अजगर 2.7.3 है, और safe_dump का उपयोग सटीक एक ही आउटपुट है। –