2012-01-11 11 views

उत्तर

343
  1. .py: यह आमतौर पर आपके द्वारा लिखे गए इनपुट स्रोत कोड होता है।
  2. .pyc: यह संकलित बाईटकोड है। यदि आप मॉड्यूल आयात करते हैं, तो पाइथन *.pyc फ़ाइल बनाएगा जिसमें बाइटकोड होता है ताकि इसे बाद में आसान (और तेज़) आयात किया जा सके।
  3. .pyo: यह एक *.pyc फ़ाइल बनाया गया था कि जब तक अनुकूलन (-O) पर किया गया है।
  4. .pyd: यह मूल रूप से एक विंडोज़ dll फ़ाइल है। http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

इसके अलावा .pyc पर कुछ आगे की चर्चा बनाम .pyo के लिए, पर एक नज़र डालें: http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html

  • पायथन दुभाषिया के साथ शुरू हो जाती है जब (मैं नीचे महत्वपूर्ण हिस्सा कॉपी किया है) - हे ध्वज, अनुकूलित कोड जेनरेट और '.pyo' फ़ाइलों में संग्रहीत किया जाता है। वर्तमान में अनुकूलक बहुत मदद नहीं करता है; यह केवल जोरदार बयान हटा देता है। जब -ओ का उपयोग किया जाता है, तो सभी बाइटकोड अनुकूलित किया जाता है; .pyc फ़ाइलों को अनदेखा किया जाता है और .py फ़ाइलों को अनुकूलित बाइटकोड में संकलित किया जाता है।
  • अजगर दुभाषिया (-OO) के लिए दो -O झंडे पासिंग बाईटकोड संकलक अनुकूलन नहीं है जो कुछ दुर्लभ मामलों में खराब कार्यक्रमों में परिणाम सकता है प्रदर्शन करने के लिए कारण होगा। वर्तमान में केवल __doc__ तारों को बाइटकोड से हटा दिया गया है, जिसके परिणामस्वरूप अधिक कॉम्पैक्ट '.pyo' फ़ाइलें हैं। चूंकि कुछ प्रोग्राम इन उपलब्ध होने पर भरोसा कर सकते हैं, इसलिए आपको केवल यह विकल्प उपयोग करना चाहिए यदि आप जानते हैं कि आप क्या कर रहे हैं।
  • एक कार्यक्रम किसी भी तेजी से जब यह जब यह एक '.py' फ़ाइल से पढ़ा जाता है की तुलना में एक '.pyc' या '.pyo' फ़ाइल से पढ़ने के लिए है नहीं चलता है; 'pypy 'या' .pyo 'फ़ाइलों के बारे में तेज़ी से एकमात्र चीज वह गति है जिसके साथ वे लोड होते हैं।
  • एक स्क्रिप्ट कमांड लाइन पर अपने नाम देकर चलाया जाता है, स्क्रिप्ट के लिए बाईटकोड एक '.pyc' या '.pyo' फाइल करने के लिए कभी नहीं लिखा है। इस प्रकार, अधिकांश कोड को मॉड्यूल में ले जाकर और उस मॉड्यूल को आयात करने वाली छोटी बूटस्ट्रैप स्क्रिप्ट होने के कारण स्क्रिप्ट का स्टार्टअप समय कम हो सकता है। कमांड लाइन पर '.pyc' या '.pyo' फ़ाइल को सीधे नाम देना भी संभव है।
+2

में पाया जा सकता dll अजगर स्क्रिप्ट या C/C++ स्क्रिप्ट से उत्पन्न फ़ाइलों रहे हैं? –

+1

@yankitwizzy: हाँ। उन्हें सी/सी ++ कोड से उत्पन्न किया जाना चाहिए। फ़ाइल मशीन कोड में होनी चाहिए, इसलिए यह सीधे अजगर से नहीं हो सकता है। –

+0

"वर्तमान में अनुकूलक बहुत मदद नहीं करता है, यह केवल जोरदार बयान हटा देता है।"। क्या तुम इसके बारे में निश्चित हो? '' 'Def f (x): आज़माएं (x ** 5 == x * x * x * x * x); वापसी x; आयात समय; प्रिंट (timeit.repeat ("x में श्रेणी के लिए (100): f (x)", "__main__ आयात f", संख्या = 10000) से;) '' –

155

.py - रेगुलर लिपियों
.py3 - (शायद ही कभी इस्तेमाल) python3 स्क्रिप्ट। Python3 स्क्रिप्ट आमतौर पर के साथ ".py" नहीं ".py3" अंत है, लेकिन मैंने देखा है कि कई बार
.pyc - संकलित स्क्रिप्ट (Bytecode)
.pyo - pyc फ़ाइल अनुकूलित (python3 के रूप में। 5, पायथन केवल पियो और पीईसी के बजाय पीईसी का उपयोग करेगा)
।pyw - विंडोज के लिए पायथन लिपि। यह pythonw.exe साथ क्रियान्वित किया जाता है
.pyx - Cython src सेल्सियस के लिए परिवर्तित किया/C++
.pyd - अजगर एक Windows DLL
.pxd के रूप में निर्मित स्क्रिप्ट - Cython स्क्रिप्ट जो के बराबर है एक C/C++ शीर्ष लेख
.pxi - MyPy ठूंठ
.pyi - स्टब फ़ाइल (PEP 484)
.pyz - अजगर स्क्रिप्ट संग्रह (PEP 441); मानक पाइथन स्क्रिप्ट हेडर
.pywz - एमएस-विंडोज़ (PEP 441) के लिए पायथन स्क्रिप्ट संग्रह के बाद यह बाइनरी रूप में संकुचित पायथन स्क्रीप्ट (ज़िप) युक्त एक स्क्रिप्ट है; मानक पाइथन स्क्रिप्ट हेडर
.py [cod] - ".gitignore" में वाइल्डकार्ड नोटेशन का अर्थ है कि फ़ाइल ".pyc" हो सकती है, "के बाद बाइनरी रूप में संकुचित पायथन स्क्रीप्ट (ज़िप) युक्त एक स्क्रिप्ट है। pyo ", या" .pyd "।

अतिरिक्त अजगर फ़ाइल एक्सटेंशन (ज्यादातर दुर्लभ और अनौपचारिक) का एक बड़ा सूची http://dcjtech.info/topic/python-file-extensions/

+11

यह ध्यान दिया जाना चाहिए कि एक «.pyx» फ़ाइल काफी पायथन स्रोत नहीं है जिसे सी में परिवर्तित किया गया है, बल्कि सिथॉन स्रोत कोड (यानी: सी में परिवर्तित होने का इंतजार) –

+3

ग्रेट लिस्ट, दिमाग अगर मैं इसे प्रस्तुत करने के लिए उधार लेता हूं मेरे पास फ्रीकोड कैंप है? –

+2

@DwightSpencer, निश्चित रूप से। –

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