में बाइनरी के रूप में एक ASCII स्ट्रिंग लिखना मेरे पास ASCII स्ट्रिंग = "abcdefghijk" है। मैं इसे पाइथन का उपयोग करके बाइनरी प्रारूप में बाइनरी फ़ाइल में लिखना चाहता हूं।पाइथन
मैं निम्नलिखित की कोशिश की:
str = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join((("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()
हालांकि, जब मैं test.bin मैं ascii प्रारूप के बजाय बाइनरी में निम्न देखें खोलें।
\x61\x62\x63\x64\x65\x66\x67
मैं इसे समझता हूं क्योंकि यहां दो स्लेश ("\\ x% s") के लिए। मैं इस मुद्दे को कैसे हल कर सकता हूं? अग्रिम में धन्यवाद।
अद्यतन:
के बाद मुझे उम्मीद परिणाम देता है:
file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close()
लेकिन मैं कैसे "abcdef" ASCII तार के साथ इस लक्ष्य को हासिल है। ?
आप * बहुत सावधानी से * अक्षरों को हेक्स के रूप में एन्कोड करते हैं - आप कुछ और क्यों देखने की उम्मीद कर रहे हैं? – jonrsharpe
तब आप किस आउटपुट की अपेक्षा करते थे? मुझे यकीन नहीं है कि आप समझ गए हैं कि बाइनरी मोड * क्या करता है, या यहां तक कि पाइथन भी \ \ xhh' नोटेशन का उपयोग करता है (और यह केवल * वाक्यविन्यास * है, एक मूल्य उत्पन्न करने का एक तरीका है, मूल्य नहीं है)। –
@jonrsharpe, मैं test.bin (ascii स्ट्रिंग के रूप में नहीं) के लिए बाइनरी के रूप में "\ x61 \ x62 \ x63 \ x64 \ x65 \ x66 \ x67" लिखना चाहता हूं। मैं उसे कैसे कर सकता हूँ? और अंत में test.bin एक बाइनरी फ़ाइल होना चाहिए। – aMa