पाइथन अचार के लिए पसंदीदा (या सबसे आम) फ़ाइल एक्सटेंशन


84

समय में, मैंने देखा है .pickle, .pck, .pcl, और .dbफ़ाइलों को अजगर अचार होते हैं के लिए है, लेकिन मैं अनिश्चित सबसे आम या सबसे अच्छा अभ्यास है क्या कर रहा हूँ। मुझे पता है कि बाद के तीन एक्सटेंशन अन्य चीजों के लिए भी उपयोग किए जाते हैं।

संबंधित प्रश्न यह है: REST API का उपयोग करके सिस्टम के बीच अचार भेजने के लिए किस MIME प्रकार को प्राथमिकता दी जाती है?


4
क्या अजीब बात है कि मुझे यकीन है कि एक बार मैंने .pkl का उपयोग किया है।
idjaw

2
किसी कारण से यह पायथन 3 डॉक में नहीं है, लेकिन पायथन में 2 डॉक और निर्दिष्ट करना pkl-> docs.python.org/2/library/pickle.html#example
idjaw

4
जहां भी संभव हो अचार से बचें। अचार का उपयोग करने के खिलाफ चेतावनी देने के कारण एक कारण है - यह सुरक्षित नहीं है, यह कभी भी सुरक्षित नहीं है, और यह कभी भी सुरक्षित नहीं होगा। इसके बजाय json मॉड्यूल का उपयोग करें।
किंगराडिकल

@KingRadical क्या आप कुछ विकल्प दे सकते हैं?
राफा नोगेल्स

1
@ राफा नॉगल्स मेसपैक को एक अच्छा द्विआधारी वैकल्पिक pypi.org/project/u-msgpack-python
giuliano-oliveira

जवाबों:


97

अजगर २

से अजगर 2 प्रलेखन , (एक अचार फाइल करने के लिए यानी लेखन) serializing जबकि, उपयोग करें:

output = open('data.pkl', 'wb')

मैं .pklपायथन 2 का उपयोग करते समय विस्तार के रूप में चुनूंगा।

अजगर ३

पायथन 3 प्रलेखन में उदाहरण अब .pickleक्रमांकन के लिए फ़ाइल एक्सटेंशन के रूप में उपयोग होता है :

with open('data.pickle', 'wb') as f:
    pickle.dump(...)

नीचे दिए गए मार्टीन्यू की टिप्पणी से अचार भेजने के लिए पसंदीदा MIME प्रकार :

आवेदन / ओकटेट-धारा

देखें बाइट्स के ब्लॉब के लिए HTTP "कंटेंट-टाइप" का क्या उपयोग है?


text/plainअचार प्रोटोकॉल के आधार पर काम नहीं किया जा सकता है - प्रोटोकॉल संस्करण 0 केवल एक ही ASCII है।
मार्टिन

2
उस ने कहा, मुझे लगता application/octet-streamहै कि प्रोटोकॉल की परवाह किए बिना बेहतर होगा - प्रश्न देखें कि HTTP "सामग्री-प्रकार" बाइट्स के ब्लॉब के लिए उपयोग करने के लिए क्या है?
मार्टिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.