2009-12-04 11 views
13

मैंने अपनी एक छोटी पायथन लिपि बनाई है। मैंने लिनक्स पर अचार फ़ाइल को सहेजा और फिर इसे विंडोज़ पर इस्तेमाल किया और फिर इसे फिर से लिनक्स पर इस्तेमाल किया लेकिन अब वह फाइल लिनक्स पर काम नहीं कर रही है लेकिन यह पूरी तरह से विंडोज़ पर काम कर रही है। ऐसा है कि पाइथन कॉस-प्लेटफ़ॉर्म है लेकिन अचार फ़ाइल नहीं है। क्या इसका कोई समाधान है ???पाइथन क्रॉस-प्लेटफ़ॉर्म की अचार फ़ाइल है?

+32

पाइथन अचार संभवतः कांटेदार। पिकल प्लेटफॉर्म की समस्याएं संभावित रूप से रोकथाम योग्य हैं। वर्तमान संभावित समस्या निवारण प्रस्ताव, कृपया। – aehiilrs

उत्तर

23

पायथन का अचार पूरी तरह से पार मंच है।

यह संभवतः विंडोज और लिनक्स के बीच ईओएल (एंड-ऑफ-लाइन) अंतर के कारण है। खुले() के "wb" और "आरबी" मोड का उपयोग करके, उन्हें लिखते समय और उन्हें पढ़ने पर, दोनों को चुनने पर बाइनरी मोड में अपनी अचार फ़ाइलों को खोलना सुनिश्चित करें।

नोट: पायथन के विभिन्न संस्करणों के बीच अचार पास करने से परेशानी हो सकती है, इसलिए दोनों प्लेटफार्मों पर एक ही संस्करण रखने का प्रयास करें।

+0

'अचार' है ["पिछड़ा संगत" होने की गारंटी है] (http://docs.python.org/2/library/pickle.html#relationship-to-other-python-modules)। मुझे लगता है कि इसका मतलब है कि नए संस्करण पुराने संस्करणों से अचार पढ़ेंगे, लेकिन पुराने संस्करण नए संस्करणों से अचार पढ़ने में सक्षम नहीं हो सकते हैं। – max

0

आप pickle के बजाय json का उपयोग कर सकते हैं। यदि यह आपके डेटा को सहेज सकता है, तो आप इसे क्रॉस प्लेटफॉर्म जानते हैं।

+0

डाउनवॉटिंग नहीं, लेकिन इस स्थिति के लिए जेसन का उपयोग करना अजीब लगता है। – ChristopheD

+1

यह वास्तव में उस पर निर्भर करता है कि वह क्या बचा रहा है। यदि यह संख्याओं और तारों की सभी सूचियां है, तो JSON बहुत अच्छा है। यदि यह शब्दकोश और कक्षा के उदाहरण हैं, तो इतना नहीं। – steveha

+0

मैं कक्षा के उदाहरणों को सहेज रहा हूं – vikithakar

9

pickle मॉड्यूल supports several different data formats देखें। यदि आप डिफ़ॉल्ट (0) का उपयोग करने के बजाय एक विशेष अचार प्रारूप निर्दिष्ट कर रहे हैं, तो आप क्रॉस-प्लेटफ़ॉर्म बाइनरी फ़ाइल समस्याओं में चल रहे हैं। आप प्रोटोकॉल 0.

4

पिक क्रॉस-प्लेटफ़ॉर्म होना चाहिए, संस्करण/प्रोटोकॉल समस्याएं हैं (http://docs.python.org/library/pickle.html#data-stream-format देखें) लेकिन सामान्य रूप से यदि आप अपनी खिड़कियों पर पाइथन की एक ही रिलीज का उपयोग कर रहे हैं तो सामान्य ASCII अचार फ़ाइलों का उपयोग कर सकते हैं और यूनिक्स बक्से, वे अंतःक्रियाशील होना चाहिए।

आप एक डेटा परिवहन तंत्र के रूप में अचार का उपयोग कर रहे हैं, तो आप इस तरह के json, एक्सएमएल, csv, YAML, आदि

0

एक दिलचस्प विचार के रूप में डाटा संग्रहण के लिए कम-कार्यान्वयन विशिष्ट प्रारूप, विचार करना चाह सकते कोशिश करें PyON (पायथन ऑब्जेक्ट नोटेशन)। वर्तमान संस्करण कम से कम मेरे परीक्षणों के अनुसार साधारण मामलों के लिए काम करता प्रतीत होता है। ऐसा लगता है कि मेलिंग सूचियों पर कुछ असहमति हुई है कि परियोजना एक अच्छा विचार है या नहीं।

संबंधित मुद्दे