साथ uncompressing अजगर 2.5 मैं संग्रहीत डेटा में इस कोड का उपयोग:Unpicking अजगर 2.5 में मसालेदार डेटा, अजगर 3.1 में तो zlib
def GLWriter(file_name, string):
import cPickle
import zlib
data = zlib.compress(str(string))
file = open(file_name, 'w')
cPickle.dump(data, file)
यह ठीक काम किया है, मैं में है कि इस प्रक्रिया करके उस डेटा को पढ़ने में सक्षम था रिवर्स। इसे सुरक्षित होने की आवश्यकता नहीं थी, केवल कुछ ऐसा जो मानव आंखों के लिए पठनीय नहीं था। मैं इस पर "परीक्षण" रखा और फिर फ़ाइल यह बनाया खोला है, यह इस तरह से देखा:
S'x\x9c+I-.\x01\x00\x04]\x01\xc1'
p1
.
विभिन्न कारणों के लिए अब हम अजगर 3.1 का उपयोग करने के लिए मजबूर कर रहे हैं और हम कुछ इन पढ़ सकते हैं कि कोड करने के लिए की जरूरत है डेटा की फ़ाइलें।
अचार अब स्ट्रिंग इनपुट स्वीकार नहीं करता है इसलिए मुझे फ़ाइल को "आरबी" के साथ खोलना पड़ा है। जब मैं ऐसा और pickle.load (फाइल) के साथ इसे खोलने का प्रयास करें, मैं इस त्रुटि मिलती है:
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
UnicodeDecodingError: 'ascii' codec can't decode byte 0x9c in position 1: ordinal not in range(128)
ढूंढ़ना है कि मैं अचार में फ़ाइल खोलने के लिए सक्षम नहीं हो सकता है, मैं कुछ शोध करना शुरू कर दिया और पाया कि अचार केवल जेएलआईबी उत्पादन कर रहे डेटा के मुख्य ब्लॉक के प्रत्येक पक्ष को कुछ अक्षर लपेट रहा है। मैंने फिर इसे आउटपुट zlibs करने के लिए नीचे ट्रिम करने की कोशिश की और zlib.decompress के माध्यम से डाल दिया। मेरा मुद्दा यह है कि यह फ़ाइल को पढ़ता है और "\ x04" की पसंद को चार वर्णों के बजाय एक के रूप में व्याख्या करता है। बहुत सारे परीक्षण और बाद में खोज रहे हैं और मुझे अचार को फ़ाइल लोड करने का कोई तरीका नहीं मिल रहा है, या पाइथन इन कोडों को पहचानने के लिए एक रास्ता नहीं ढूंढ सकता है, इसलिए मैं इसे zlib के माध्यम से रख सकता हूं।
तो मेरा प्रश्न यह है: मैं Python3.1 का उपयोग कर मूल डेटा कैसे पुनर्प्राप्त कर सकता हूं?
मुझे अपने ग्राहकों से Python2.5 स्थापित करने और मैन्युअल रूप से करने के लिए पूछना अच्छा लगेगा लेकिन यह संभव नहीं है।
आपकी सहायता के लिए बहुत धन्यवाद!
वाह, यह पूरी तरह से काम करता है! बहुत बहुत धन्यवाद! –