Wednesday 1 November 2017

अजगर खुले stdout के रूप में द्विआधारी विकल्प


पायथन फ़ाइलें IO यह अध्याय सभी बुनियादी IO फ़ंक्शन को पायथन में उपलब्ध कराता है। अधिक फ़ंक्शन के लिए, कृपया मानक पायथन दस्तावेज़ देखें। स्क्रीन पर मुद्रण आउटपुट का उत्पादन करने का सरलतम तरीका प्रिंट स्टेटमेंट का उपयोग कर रहा है, जहां आप कोमा से अलग शून्य या अधिक अभिव्यक्तियां पारित कर सकते हैं। यह फ़ंक्शन आप एक्सप्रेशंस को स्ट्रिंग में बदल देता है और परिणाम को मानक आउटपुट के रूप में लिखता है, जैसे कि निम्न शून्य से आपके मानक स्क्रीन पर निम्न परिणाम उत्पन्न करता है। कुंजीपटल इनपूटिंग पढ़ना पठन मानक इनपुट से पाठ की एक पंक्ति को पढ़ने के लिए दो अंतर्निहित फ़ंक्शन प्रदान करता है, जो डिफ़ॉल्ट रूप से कीबोर्ड से आता है ये फ़ंक्शन कम है कच्चेइनपॉप फ़ंक्शन कच्चेइनपुट (प्रॉम्प्ट) फ़ंक्शन मानक इनपुट से एक पंक्ति पढ़ता है और उसे एक स्ट्रिंग के रूप में देता है (अनुगामी नई लाइन को निकाल रहा है)। यह आपको कोई स्ट्रिंग दर्ज करने के लिए संकेत देता है और यह स्क्रीन पर समान स्ट्रिंग प्रदर्शित करेगा। जब मैंने हैलो पायथन टाइप किया, तो इसका आउटपुट इस माइनस की तरह है इनपुट फ़ंक्शन इनपुट (प्रॉम्प्ट) फ़ंक्शन कच्चेइनपुट के समतुल्य है, सिवाय इसके कि यह मान्य है कि इनपुट एक वैध पायथन अभिव्यक्ति है और आपके लिए मूल्यांकन परिणाम लौटाता है। इससे प्रवेश किए गए इनपुट माइनस के उद्घाटन और समापन फाइलों के खिलाफ निम्नलिखित परिणाम उत्पन्न होंगे अब तक, आप मानक इनपुट और आउटपुट को पढ़ने और लिख रहे हैं। अब, हम देखेंगे कि वास्तविक डेटा फ़ाइलों का कैसे उपयोग करें। अजगर डिफ़ॉल्ट रूप से फाइलों को हेरफेर करने के लिए आवश्यक बुनियादी फ़ंक्शंस और तरीके प्रदान करता है। आप फ़ाइल ऑब्जेक्ट का उपयोग करते हुए अधिकांश फ़ाइल हेरफेलेशन कर सकते हैं। खुला फ़ंक्शन जो आप फ़ाइल को पढ़ या लिख ​​सकते हैं, आपको इसे खोलने के लिए पायथन को खोलने () फ़ंक्शन का उपयोग करना होगा। यह फ़ंक्शन एक फ़ाइल ऑब्जेक्ट बनाता है, जिसका उपयोग इसके साथ संबद्ध अन्य समर्थन विधियों को कॉल करने के लिए किया जाएगा। यहां पैरामीटर विवरण हैं: filename: फ़ाइल नाम तर्क एक स्ट्रिंग मान है जिसमें उस फ़ाइल का नाम है जिसे आप एक्सेस करना चाहते हैं। एक्सेसमोड: एक्सेसमोड उस मोड को निर्धारित करता है जिसमें फ़ाइल को खोला जाना है, अर्थात पढ़ा, लिखना, संलग्न करना आदि। संभव मानों की पूरी सूची तालिका में नीचे दी गई है। यह वैकल्पिक पैरामीटर है और डिफ़ॉल्ट फ़ाइल एक्सेस मोड पढ़ा है (आर)। बफरिंग: यदि बफ़रिंग मान 0 पर सेट है, तो बफ़र नहीं होता है यदि बफ़रिंग मान 1 है, तो फ़ाइल को एक्सेस करते समय लाइन बफ़रिंग किया जाता है। यदि आप बफरिंग मान को 1 से अधिक पूर्णांक के रूप में निर्दिष्ट करते हैं, तो बफरिंग बॉर्डर आकार के साथ बफ़रिंग एक्शन किया जाता है। अगर नकारात्मक, बफ़र का आकार सिस्टम डिफ़ॉल्ट है (डिफ़ॉल्ट व्यवहार)। यहां फ़ाइल खोलने के विभिन्न तरीकों की एक सूची है, एक प्रोग्राम चलाने की पूरी अवधि के लिए बिना पथरी के दंड से अजगर बिना द्विपदीय फाइल में गुजरने की एक decoupled विधि (यदि मैं केवल सीएमडीलाइन का उपयोग करना चाहता हूं और नहीं खुले (.आरबी) ऐसा लगता है कि - यू एक फ़ाइल में बाइनरी डाटा (सीएमडीलाइन से) के रूप में पढ़ने का एकमात्र तरीका है - यू फोर्स स्टैडीन, स्टडआउट और स्टेडरर को पूरी तरह से हटाया नहीं जाना चाहिए। सिस्टम जहां यह मायने रखता है, स्टडिन, स्टडआउट और बाइनरी मोड में stderr। किसी कारण के लिए, 30 सितंबर को 6:44 से पूछा, अजगर में- (अनुपयोगी आउटपुट जो चीजों को बहुत धीमा बनाता है), यह भी नियंत्रित करता है कि ऑपरेटर में एक फ़ाइल जैसे कि test. py lt myfile का उपयोग किया जाता है या नहीं द्विआधारी इनपुट के रूप में.मैं एक ऐसी समस्या में भाग गया जिसमें मुझे एक क्लास के लिए इस इनपुट प्रारूप का उपयोग करना पड़ा और फ़ाइल को पार्स करने की प्रक्रिया में, यह 39ctrlz39 के बराबर पढ़ा और एप्लिकेशन को मार डाले। इसलिए मेरी आशा थी कि वहाँ एक रास्ता है एक फ़ाइल को द्विआधारी के रूप में व्यवहार करने के लिए, अजगर को बिना आउटपुट आउटपुट ndash करने के लिए कहाना pyInTheSky Oct 4 11 at 12:02 आप संभवतः पायथन फ़ाइल मोड से बच सकते हैं, fileno को sys. stdin फ़ाइल की तरह ऑब्जेक्ट से बाहर निकाल कर, और os. read () का उपयोग करके इसे डेटा प्राप्त करने के लिए यह कोड मानक इनपुट बदल जाएगा ( केवल) unbuffered मोड के लिए। इस का प्रयोग करके आपको - u के साथ दुभाषिए को खोलने की आवश्यकता नहीं होगी यूनिक्स केवल हालांकि, मुझे यकीन नहीं है कि इसके किन दुष्प्रभाव हो सकते हैं, उदाहरण के लिए कच्चेइनपुट पर निर्मित फ़ंक्शन। गैर-अवरुद्ध मोड में भी सावधान रहें, यदि चयन आपको बताता है कि एफडी पढ़ने के लिए तैयार है, तो आपको अभी भी OSError को पकड़ने और e. errno os. errno. EAGAIN के लिए जांच की आवश्यकता होगी। ऐसी त्रुटियों को अनदेखा करना चाहिए .7। इनपुट और आउटपुट प्रस्तुत करने के कई तरीके हैं, किसी प्रोग्राम डेटा के आउटपुट को मानवीय पठनीय रूप में मुद्रित किया जा सकता है, या भविष्य के उपयोग के लिए फ़ाइल को लिखा जा सकता है। यह अध्याय कुछ संभावनाओं पर चर्चा करेगा। 7.1। फैनियर आउटपुट फॉर्मेटिंग अब तक हम मूल्यों को लिखने के दो तरीकों से सामना कर रहे हैं: अभिव्यक्ति का बयान और प्रिंट स्टेटमेंट (एक तीसरा रास्ता फ़ाइल ऑब्जेक्ट्स की लिखने () पद्धति का उपयोग कर रहा है, मानक आउटपुट फ़ाइल को sys. stdout के रूप में संदर्भित किया जा सकता है। इस पर अधिक जानकारी के लिए लाइब्रेरी संदर्भ देखें।) अक्सर you8217ll को केवल आपके आउटपुट के स्वरूपण पर अधिक नियंत्रण चाहिए अंतरिक्ष-विभाजित मूल्यों को छपाई अपने आउटपुट को प्रारूपित करने के दो तरीके हैं, स्ट्रिंग स्कीइसिंग और कॉकटाएनेशन ऑपरेशन के जरिए अपने आप को संभालने वाली सभी स्ट्रिंग्स का पहला तरीका है आप कल्पना कर सकते हैं कोई भी लेआउट बना सकते हैं। स्ट्रिंग प्रकारों में कुछ विधियां हैं जो पैडिंग स्ट्रिंग्स के लिए दिए गए स्तंभ चौड़ाई के लिए उपयोगी कार्रवाइयां करती हैं, इन पर शीघ्र ही चर्चा की जाएगी। दूसरा तरीका है str. format () विधि का उपयोग करना। स्ट्रिंग मॉड्यूल में टेम्पलेट क्लास होता है जो स्ट्रिंग्स में मूल्यों को बदलने के लिए एक अन्य तरीका प्रदान करता है। एक सवाल बेशक, बेशक: आप मूल्यों को तारों में कैसे रूपांतरित करते हैं, सौभाग्य से, पायथन में किसी भी मान को स्ट्रिंग में कनवर्ट करने के तरीके हैं: इसे repr () या str () फ़ंक्शन पर पास करें एआरआर () समारोह का मतलब मानकों के प्रतिनिधित्व को वापस लौटने के लिए है, जो काफी मानव-पठनीय हैं, जबकि repr () का प्रतिनिधित्व अभिप्रेतता उत्पन्न करने के लिए होता है जो कि दुभाषिया द्वारा पढ़ा जा सकता है (या कोई सिंटैक्स त्रुटि अगर कोई समतुल्य वाक्यविन्यास नहीं है)। वस्तुओं के लिए जो don8217t के मानव उपभोग के लिए एक विशिष्ट प्रतिनिधित्व है, str () repr () के समान मूल्य वापस करेगा। अनेक मूल्यों, जैसे कि संख्याएं या संरचनाएं जैसे सूचियों और शब्दकोशों, का उपयोग किसी भी फ़ंक्शन का उपयोग करके ही किया जाता है। स्ट्रिंग्स और फ्लोटिंग प्वाइंट नंबर, विशेष रूप से, दो अलग-अलग अभ्यावेदन हैं चौराहों और क्यूब्स की एक तालिका लिखने के दो तरीके हैं: (ध्यान दें कि पहले उदाहरण में, प्रत्येक स्तंभ के बीच एक स्थान प्रिंट कामों से जोड़ा गया था: यह हमेशा अपने तर्कों के बीच स्थान जोड़ता है।) यह उदाहरण str. rjust दर्शाता है () स्ट्रिंग ऑब्जेक्ट्स की विधि, जो एक चौड़ाई के क्षेत्र में बाईं ओर रिक्त स्थान के साथ पैडिंग के द्वारा एक स्ट्रिंग को सही मानता है। समान विधियां हैं str. ljust () और str. center () ये विधियां कुछ भी नहीं लिखती, वे सिर्फ एक नई स्ट्रिंग वापस करते हैं। अगर इनपुट स्ट्रिंग बहुत लंबी है, तो वे इसे 8217 $ कम कर देते हैं, लेकिन इसे अपरिवर्तित नहीं किया जाता है, यह आपके कॉलम में गड़बड़ी करेगा, लेकिन वैकल्पिक 88127 आमतौर पर वैकल्पिक से बेहतर होगा, जो मूल्य के बारे में झूठ बोलना होगा। (यदि आप वास्तव में ट्रांस्केशन चाहते हैं तो आप हमेशा एक स्लाइस ऑपरेशन जोड़ सकते हैं, जैसा कि x. ljust (n): n।) एक और विधि है, str. zfill ()। जो शून्य के साथ बाईं तरफ एक संख्यात्मक स्ट्रिंग पैड करता है। यह प्लस और माइनस चिन्हे के बारे में समझता है: str. format () पद्धति का मूल उपयोग इस तरह दिखता है: उनके भीतर ब्रैकेट्स और वर्ण (प्रारूप फ़ील्ड) को बदल दिया जाता है str. format () विधि में दिए गए ऑब्जेक्ट के साथ बदल दिया जाता है कोष्ठक में एक संख्या str. format () विधि में पारित वस्तु की स्थिति को संदर्भित करता है। यदि स्ट्रिंग्स () विधि में कीवर्ड तर्क का उपयोग किया जाता है, तो उनके मूल्यों को तर्क के नाम का उपयोग करके संदर्भित किया जाता है। स्थितिपरक और कीवर्ड तर्कों को संयोज्य किया जा सकता है: 7.2। पढ़ना और लेखन फ़ाइलें खुली () एक फ़ाइल ऑब्जेक्ट देता है, और सबसे अधिक दो तर्कों के साथ प्रयोग किया जाता है: खुला (फ़ाइल नाम, मोड) पहला तर्क फ़ाइल नाम युक्त स्ट्रिंग है। दूसरा तर्क एक और स्ट्रिंग है जिसमें कुछ वर्णों का वर्णन किया गया है जिसमें फ़ाइल का उपयोग किया जाएगा। मोड आर हो सकता है जब फ़ाइल केवल पढ़ी जा सकती है, केवल लिखने के लिए (उसी नाम के साथ एक मौजूदा फाइल मिटा दी जाएगी), और फ़ाइल को लिखे गए किसी भी डेटा को जोड़ने के लिए फ़ाइल खोलने पर स्वचालित रूप से अंत में जोड़ दिया जाता है r दोनों को पढ़ने और लिखने के लिए फ़ाइल को खोलता है। विधा तर्क तर्कसंगत है, आर अगर यह 8217 छोड़ा जाता है तो इसे ग्रहण किया जाएगा। विन्डोज़ पर, बी को जोड़ा गया मोड में फाइल को द्विआधारी मोड में खोलता है, इसलिए भी आरबी की तरह मोड हैं। पश्चिम बंगाल। और आरबी विंडोज पर पायथन पाठ और बाइनरी फाइलों के बीच एक अंतर बनाता है, जब डेटा पढ़ा या लिखा जाता है तो पाठ फ़ाइलों में अंत-रेखा के अक्षरों को स्वचालित रूप से थोड़ा बदल दिया जाता है। यह फ़ाइल के पीछे के दृश्यों को संशोधित करने के लिए एएससीआईआई पाठ फाइलों के लिए ठीक है, लेकिन जेपीईजी या एक्सई फाइलों में आईटीआईआईओआईएल भ्रष्ट बाइनरी डेटा। ऐसी फ़ाइलों को पढ़ने और लिखने के दौरान बाइनरी मोड का उपयोग करने के लिए बहुत सावधान रहें यूनिक्स पर, यह मोड में बी को संलग्न करने के लिए क्षतिग्रस्त करता है, इसलिए आप सभी बाइनरी फ़ाइलों के लिए स्वतंत्र रूप से इसका उपयोग कर सकते हैं I 7.2.1। फ़ाइल ऑब्जेक्ट के तरीके इस खंड के बाकी उदाहरण मान लेंगे कि एक फ़ाइल ऑब्जेक्ट को पहले से ही बनाया गया है। फ़ाइल 8217 की सामग्री को पढ़ने के लिए, f. read (आकार) को कॉल करें जो कुछ मात्रा में डेटा पढ़ता है और इसे स्ट्रिंग के रूप में देता है। आकार एक वैकल्पिक संख्यात्मक तर्क है जब आकार को छोड़ दिया जाता है या नकारात्मक होता है, तो फ़ाइल की संपूर्ण सामग्री को पढ़ा जाएगा और इसे आपकी समस्या 8,87,777 कर दिया जाएगा यदि आपकी मशीन 8217 की स्मृति के रूप में दोगुनी बड़ी है। अन्यथा, अधिक आकार के बाइट्स को पढ़ने और लौटाए जाते हैं। यदि फाइल का अंत हो चुका है, तो f. read () एक रिक्त स्ट्रिंग (quotquot) लौटाएगा f. readline () फ़ाइल से एक लाइन को पढ़ता है एक नया पंक्ति (n) स्ट्रिंग के अंत में छोड़ दिया जाता है, और फ़ाइल की अंतिम पंक्ति पर केवल छोड़ा जाता है अगर फ़ाइल doesn8217t एक newline में समाप्त होता है। अगर रिक्त स्ट्रिंग लौटाता है, तो फ़ाइल का अंत हो गया है, जबकि रिक्त रेखा का प्रतिनिधित्व n के द्वारा किया जाता है, यह रिटर्न वैल्यू निर्बाध बनाता है। एक स्ट्रिंग जिसमें केवल एक नई लाइन होती है किसी फ़ाइल से लाइन पढ़ने के लिए, आप फ़ाइल ऑब्जेक्ट पर लूप कर सकते हैं। यह स्मृति कुशल, तेज, और सरल कोड की ओर जाता है: यदि आप किसी सूची में किसी फ़ाइल की सभी पंक्तियां पढ़ना चाहते हैं तो आप सूची (f) या f. readlines () का भी उपयोग कर सकते हैं। f. write (string) फ़ाइल को स्ट्रिंग की सामग्री लिखता है, कोई भी नहीं लौट रहा है स्ट्रिंग के अलावा अन्य कुछ लिखने के लिए, इसे पहले किसी स्ट्रिंग में कनवर्ट करना होगा: f. tell () फाइल की शुरुआत से बाइट्स में मापा गया फाइल में फाइल ऑब्जेक्ट 8217 की मौजूदा स्थिति को देने वाला एक पूर्णांक देता है। फ़ाइल ऑब्जेक्ट 8217 की स्थिति को बदलने के लिए, f. seek (ऑफसेट, सेवाट) का उपयोग करें। स्थिति को एक संदर्भ बिंदु में ऑफसेट जोड़ने से गणना की जाती है, संदर्भ बिंदु उस वलेखित तर्क से चुना जाता है। फ़ाइल की शुरुआत से 0 उपायों का मूल्य, 1 वर्तमान फ़ाइल स्थिति का उपयोग करता है, और 2 संदर्भ बिंदु के रूप में फ़ाइल के अंत का उपयोग करता है। जो कि फ़ाइल की शुरुआत का उपयोग करके संदर्भ बिंदु के रूप में, छोड़ा जा सकता है और 0 के लिए डिफ़ॉल्ट हो सकता है। जब आप 8217 एक फाइल के साथ किया जाता है, तो उसे बंद करने के लिए f. close () को कॉल करें और खुले फ़ाइल द्वारा उठाए गए किसी सिस्टम संसाधन को मुक्त करें। कॉल करने के बाद f. close () फ़ाइल ऑब्जेक्ट का उपयोग करने का प्रयास स्वचालित रूप से विफल हो जाएगा फ़ाइल ऑब्जेक्ट के साथ काम करते समय कीवर्ड के साथ प्रयोग करना अच्छा अभ्यास है इसका फायदा यह है कि इसके सूट के खत्म होने के बाद फाइल ठीक से बंद हो गई है, भले ही मार्ग पर कोई अपवाद उठाया गया हो। यह बराबर प्रयास लिखने की तुलना में बहुत कम है - अंत में ब्लॉकों: फाइल ऑब्जेक्ट्स में कुछ अतिरिक्त विधियां हैं, जैसे आइटीटी () और ट्रंकेट () जो कम बार उपयोग किए जाते हैं ऑब्जेक्ट फ़ाइल करने के लिए पूर्ण मार्गदर्शिका के लिए लाइब्रेरी संदर्भ से परामर्श करें। 7.2.2। JSON स्ट्रिंग्स के साथ संरचित डेटा को सहेजना एक फ़ाइल से आसानी से लिखा जा सकता है और पढ़ा जा सकता है। संख्याएं थोड़ा अधिक प्रयास करते हैं, क्योंकि पढ़ने () विधि केवल तार देता है, जो कि एक समारोह में पारित होनी होगी जैसे कि इंट ()। जो 123 की तरह एक स्ट्रिंग लेता है और उसका अंकीय मूल्य रिटर्न करता है 123. जब आप नेस्टेड सूचियों और शब्दकोशों जैसे अधिक जटिल डेटा प्रकारों को सहेजना चाहते हैं, हाथ से पार्सिंग और सीरियलिंग जटिल हो जाते हैं। फ़ाइलों को जटिल डेटा प्रकारों को सहेजने के लिए उपयोगकर्ताओं को लगातार लिखने और कोड डिबग करने के बजाय, पायथन आपको JSON (जावास्क्रिप्ट ऑब्जेक्ट नोडेशन) नामक लोकप्रिय डेटा इंटरचेंज प्रारूप का उपयोग करने की अनुमति देता है। जेएसन नामक मानक मॉड्यूल पायथन डेटा पदानुक्रम ले सकते हैं, और इन्हें स्ट्रींग अभिसरण में परिवर्तित कर सकते हैं, इस प्रक्रिया को सीरियललाइज कहा जाता है। स्ट्रिंग प्रतिनिधित्व से डेटा को पुनर्निर्माण के लिए deserializing कहा जाता है। Serializing और deserializing के बीच, ऑब्जेक्ट का प्रतिनिधित्व स्ट्रिंग फ़ाइल या डेटा में संग्रहीत हो सकता है, या कुछ दूर मशीन पर एक नेटवर्क कनेक्शन पर भेजा जा सकता है। डेटा एक्सचेंज के लिए अनुमति देने के लिए सामान्य रूप से आधुनिक अनुप्रयोगों द्वारा JSON प्रारूप का उपयोग किया जाता है। कई प्रोग्रामर पहले से ही परिचित हैं, जो अंतर के लिए यह एक अच्छा विकल्प बनाती है। यदि आपके पास कोई ऑब्जेक्ट x है आप अपनी JSON स्ट्रिंग प्रस्तुति को साधारण लाइन के कोड के साथ देख सकते हैं: डंप () फ़ंक्शन के दूसरे संस्करण, जिसे डंप कहा जाता है)। बस ऑब्जेक्ट को एक फ़ाइल में सीरियल कर देता है इसलिए अगर च एक फाइल ऑब्जेक्ट है जो लिखने के लिए खोला है, तो हम ऐसा कर सकते हैं: ऑब्जेक्ट को फिर से डीकोड करने के लिए, अगर f फाइल ऑब्जेक्ट है जो पढ़ने के लिए खोला गया है: यह साधारण सीरियललाइजेशन तकनीक सूची और शब्दकोशों को संभाल सकती है, लेकिन अनियमित वर्ग के उदाहरणों को क्रमबद्ध कर सकता है JSON में कुछ अतिरिक्त प्रयास की आवश्यकता है Json मॉड्यूल के संदर्भ में यह एक स्पष्टीकरण है। अचार - जेसनसन के विपरीत अचार मॉड्यूल अचार एक प्रोटोकॉल है जो मनमाने ढंग से जटिल पायथन ऑब्जेक्ट्स के क्रमिकरण की अनुमति देता है। जैसे, यह पायथन के लिए विशिष्ट है और अन्य भाषाओं में लिखे गए एप्लिकेशन के साथ संवाद करने के लिए उपयोग नहीं किया जा सकता है। यह भी डिफ़ॉल्ट रूप से असुरक्षित है: यदि अविश्वसनीय स्रोत से आने वाली अचार के डेटा को बेमानी कोड निष्पादित कर सकता है, तो डेटा कुशल कारीगर द्वारा तैयार किया गया है .1। कमांड लाइन और पर्यावरण 1.1.1। इंटरफ़ेस विकल्प इंटरप्रीटर इंटरफ़ेस यूनिक्स शेल के जैसा दिखता है, लेकिन कुछ अतिरिक्त तरीके प्रदान करता है: जब एक टीटीआई उपकरण से जुड़े मानक इनपुट के साथ फोन किया जाता है, तो वह कमांड के लिए संकेत देता है और जब तक कोई EOF (फ़ाइल का अंत नहीं होता है, आप उत्पादन कर सकते हैं कि Ctrl-D पर यूनिक्स या Ctrl-Z पर, Windows पर दर्ज करें) पढ़ा जाता है। जब फ़ाइल नाम तर्क के साथ या फ़ाइल को मानक इनपुट के रूप में कहा जाता है, तो वह उस फ़ाइल से एक स्क्रिप्ट पढ़ता और निष्पादित करता है जब एक निर्देशिका नाम तर्क के साथ कहा जाता है, तो वह उस निर्देशिका से उचित नामित स्क्रिप्ट को पढ़ता है और निष्पादित करता है। जब - c कमांड के साथ फोन किया जाता है यह कमांड के रूप में दिए गए पायथन स्टेटमेंट (एस) को कार्यान्वित करता है यहां कमांड में न्यूलाइंस द्वारा अलग-अलग बयान शामिल हो सकते हैं। अजगर बयान में अग्रणी सफेद स्थान महत्वपूर्ण है जब इसे - एम मॉड्यूल-नाम के साथ बुलाया गया दिए गए मॉड्यूल पायथन मॉड्यूल पथ पर स्थित है और एक स्क्रिप्ट के रूप में निष्पादित किया गया है। गैर-इंटरैक्टिव मोड में, पूरे इनपुट को क्रियान्वित करने से पहले पार्स किया जाता है। इंटरफ़ेस विकल्प इंटरप्रिटर द्वारा उपयोग किए जाने वाले विकल्पों की सूची को समाप्त करता है, सभी लगातार तर्क sys. argv 8211 में समाप्त हो जाएंगे कि पहला तत्व, subscript zero (sys. argv0), प्रोग्राम 8217 के स्रोत को दर्शाती स्ट्रिंग है आदेश में पायथन कोड निष्पादित करें कमांड एक या अधिक बयानों को न्यूलाइंस द्वारा अलग किया जा सकता है, जो सामान्य मॉड्यूल कोड के रूप में महत्वपूर्ण प्रमुख स्थान है। यदि यह विकल्प दिया जाता है, तो sys. argv का पहला तत्व quot-cquot होगा और वर्तमान निर्देशिका sys. path (उस निर्देशिका में मॉड्यूल को शीर्ष स्तर के मॉड्यूल के रूप में आयात करने के लिए अनुमति देता है) की शुरुआत में जोड़ दिया जाएगा। नामित मॉड्यूल के लिए sys. path खोजें और इसकी सामग्री को मुख्य मॉड्यूल के रूप में निष्पादित करें। चूंकि तर्क एक मॉड्यूल का नाम है, इसलिए आपको फ़ाइल एक्सटेंशन (.py) नहीं देना चाहिए। मॉड्यूल-नाम एक मान्य पायथन मॉड्यूल नाम होना चाहिए, लेकिन कार्यान्वयन हमेशा इसे लागू नहीं कर सकता (उदा। यह आपको एक नाम का उपयोग करने की अनुमति दे सकता है जिसमें हाइफ़न शामिल है)। पैकेज नामों की भी अनुमति है जब एक सामान्य नाम के बजाय एक पैकेज नाम दिया जाता है, तो इंटरप्रेटर ltpkggt. main को मुख्य मॉड्यूल के रूप में निष्पादित करेगा। यह व्यवहार जानबूझकर निर्देशिकाओं और ज़िपफ़ाइलों को संभालने के समान है, जो दुभाषिया को स्क्रिप्ट तर्क के रूप में दिए जाते हैं। इस विकल्प का उपयोग सी में लिखित अंतर्निहित मॉड्यूल और एक्सटेंशन मॉड्यूल के साथ नहीं किया जा सकता, क्योंकि उनके पास पायथन मॉड्यूल फाइल नहीं है। हालांकि, यह अभी भी precompiled मॉड्यूल के लिए इस्तेमाल किया जा सकता है, भले ही मूल स्रोत फ़ाइल उपलब्ध नहीं है। यदि यह विकल्प दिया गया है, तो sys. argv का पहला तत्व मॉड्यूल फ़ाइल का पूर्ण पथ होगा। - c विकल्प के साथ, वर्तमान निर्देशिका को sys. path की शुरुआत में जोड़ा जाएगा। कई मानक लाइब्रेरी मॉड्यूल में कोड होता है जिसे स्क्रिप्ट के रूप में उनके निष्पादन पर लागू किया जाता है। एक उदाहरण टाइमट मॉड्यूल है: PEP 370 8211 प्रति उपयोगकर्ता साइट-पैकेज डायरेक्टरी मॉड्यूल साइट का आयात और sys. path के साइट-आधारित निर्भरता को अक्षम करें, जो इसे उलझाएं। एक चेतावनी जारी करें जब एक स्रोत फ़ाइल इंडेंटेशन के लिए टैब और रिक्त स्थान को एक तरह से मिक्स करता है जिससे यह रिक्त स्थान में व्यक्त टैब के मूल्य पर निर्भर करता है। जब विकल्प को दो बार दिया जाता है (-टीटी) त्रुटि देता है फोर्स स्टैडीन, स्टेडाउट और स्टेडरर को पूरी तरह से बंधा हुआ होना चाहिए। जिन सिस्टमों में यह मायने रखता है, उन पर स्टडीन, स्टडआउट और स्टेडरर को बाइनरी मोड में भी रखा गया है। ध्यान दें कि फ़ाइल में आंतरिक बफ़रिंग है। रोड़े () और फ़ाइल ऑब्जेक्ट (sys. stdin में पंक्ति के लिए) जो इस विकल्प से प्रभावित नहीं है इसके आस-पास काम करने के लिए, आप file :readline () थोड़ी देर 1: लूप का उपयोग करना चाहेंगे। हर बार एक मॉड्यूल आरंभ किया जाता है, एक स्थान (फ़ाइल नाम या निर्मित मॉड्यूल), जिसमें से वह लोड किया जाता है, दिखाता है। जब दो बार दिया (-vv), प्रत्येक फ़ाइल के लिए एक संदेश मुद्रित करें जो कि मॉड्यूल के लिए खोज करते समय जांच की जाती है। बाहर निकलने पर मॉड्यूल क्लीनअप के बारे में भी जानकारी प्रदान करता है PYTHONVERBOSE भी देखें चेतावनी नियंत्रण डिफ़ॉल्ट रूप से Python8217s चेतावनी मशीनरी sys. stderr को चेतावनी संदेश प्रिंट। एक सामान्य चेतावनी संदेश में निम्न रूप होते हैं: डिफ़ॉल्ट रूप से, प्रत्येक चेतावनी प्रत्येक स्रोत रेखा के लिए एक बार मुद्रित होती है जहां यह होती है। यह विकल्प नियंत्रित करता है कि चेतावनियां कितनी बार छपी जाती हैं। जब एक चेतावनी एक से अधिक विकल्प से मेल खाती है, तो कई - W विकल्प दिए जा सकते हैं, अंतिम मिलान विकल्प के लिए कार्य किया जाता है। अमान्य - W विकल्प को अनदेखा कर दिया गया है (हालांकि, पहली चेतावनी जारी किए जाने पर एक चेतावनी संदेश अमान्य विकल्पों के बारे में मुद्रित होता है)। Python 2.7 से शुरू, अपवितरण चेतावनी और उसके वंश को डिफ़ॉल्ट रूप से अनदेखा कर दिया जाता है। - वड विकल्प उन्हें फिर से सक्षम करने के लिए उपयोग किया जा सकता है चेतावनियों को चेतावनी मॉड्यूल का उपयोग कर एक पायथन प्रोग्राम के भीतर से भी नियंत्रित किया जा सकता है। तर्क का सरलतम रूप निम्न कार्य स्ट्रिंग (या एक अद्वितीय संक्षिप्त नाम) में से एक है: सभी चेतावनियों को अनदेखा न करें। डिफ़ॉल्ट रूप से डिफ़ॉल्ट व्यवहार का अनुरोध करें (प्रत्येक स्रोत प्रति एक बार चेतावनी छापना) सभी समय यह चेतावनी छापते हैं (यह कई संदेश उत्पन्न कर सकता है अगर एक चेतावनी एक स्रोत स्रोत के लिए बार-बार शुरू होती है, जैसे लूप के अंदर)। मॉड्यूल प्रत्येक चेतावनी प्रत्येक मॉड्यूल में पहली बार ऐसा होता है प्रिंट करें। एक बार प्रत्येक चेतावनी केवल कार्यक्रम में पहली बार ऐसा होता है प्रिंट। त्रुटि एक चेतावनी संदेश छपाई के बजाय एक अपवाद बढ़ाएं। तर्क का पूरा रूप है: यहां, जैसा ऊपर बताया गया है, कार्रवाई केवल शेष संदेशों से मेल खाने वाले संदेश पर लागू होती है रिक्त फ़ील्ड खाली फ़ील्ड के पीछे आने वाले सभी मानों से मेल खाती हैं। यह संदेश फ़ील्ड चेतावनी संदेश की शुरुआत से मेल खाता है, यह मैच केस असंवेदनशील है। श्रेणी फ़ील्ड चेतावनी श्रेणी से मेल खाती है। संदेश का वास्तविक चेतावनी श्रेणी निर्दिष्ट चेतावनी श्रेणी का उपवर्ग है या नहीं यह मेल क्लास का एक क्लास का नाम होना चाहिए। पूर्ण वर्ग का नाम दिया जाना चाहिए। मॉड्यूल फ़ील्ड (पूरी तरह से योग्य) मॉड्यूल नाम से मेल खाता है, यह मैच मामला-संवेदनशील है। लाइन फ़ील्ड लाइन नंबर से मेल खाती है, जहां शून्य सभी लाइन नंबरों से मेल खाता है और इस प्रकार एक छोड़ी गई रेखा संख्या के बराबर है। चेतावनी 8211 चेतावनी मॉड्यूल पीईपी 230 8211 चेतावनी ढांचे स्रोत की पहली पंक्ति छोड़ें, सीएमडी के गैर-यूनिक्स रूपों के उपयोग की अनुमति दें। यह एक डॉस विशिष्ट हैक के लिए ही है। त्रुटि संदेशों में पंक्ति नंबर एक के द्वारा बंद हो जाएगा Python 3.x के बारे में चेतावनी दें कि संभाव्य असंगतियों को हटाए जाने वाले सुविधाओं के लिए एक अपवित्रीकरण चेतावनी को निकालने या महत्वपूर्ण रूप से पायथन 3 में बदल दिया गया है। संस्करण 2.6 में नया। 1.1.4। विकल्प आप shouldn8217t ज्योथन द्वारा उपयोग के लिए आरक्षित उपयोग करना चाहिए। यूनिकोड में सभी स्ट्रिंग लिटरल्स को विश्व स्तर पर बदल देता है इस विकल्प का उपयोग करने का मोह न करें क्योंकि यह आपकी दुनिया को तोड़ देगा। यह सामान्य की तुलना में एक अलग जादू संख्या के साथ. पीसी फ़ाइलों का उत्पादन करता है। इसके बजाय, आप यूनिकोड लीटरल को प्रत्येक मॉड्यूल के आधार पर सक्षम कर सकते हैं: फ़ाइल के शीर्ष पर। विवरण के लिए भविष्य देखें अपने स्वयं के प्रयोजनों के लिए उपयोग करने के लिए पायथन के वैकल्पिक कार्यान्वयन के लिए आरक्षित 1.2। पर्यावरण चर इन पर्यावरण चर को Python8217 के व्यवहार को प्रभावित करते हैं, ये कमांड लाइन से पहले ई-ई के स्विच-स्विच होते हैं यह प्रथा है कि कमांड लाइन ने पर्यावरण चर को ओवरराइड कर दिया है जहां एक संघर्ष है। मानक पायथन पुस्तकालयों के स्थान को बदलें। डिफ़ॉल्ट रूप से, पुस्तकालयों को उपसर्ग लिब्पीथॉन संस्करण और एक्स्पेरफिक्स लिपपीथॉन संस्करण में खोजा जाता है। जहां उपसर्ग और निष्पादफिक्स संस्थापन-निर्भर निर्देशिका हैं, दोनों को यूएसआरएलकॉल पर चूक करना जब PYTHONHOME को एक निर्देशिका में सेट किया जाता है, इसका मान उपसर्ग और निष्पादफिक्स दोनों को बदल देता है। इन के लिए अलग मान निर्दिष्ट करने के लिए, पीथोनहोम को उपसर्ग के लिए सेट करें। एक्सपेरफ़िक्स मॉड्यूल फ़ाइलों के लिए डिफ़ॉल्ट खोज पथ का आदान-प्रदान। प्रारूप शेल 8217 के पाथ के समान है एक या अधिक डायरेक्टरी पथ नाम os. pathsep (उदा। विंडोज पर यूनिक्स या सेमीकॉलन पर कॉलन) के द्वारा अलग किए गए गैर-मौजूद निर्देशिकाएं चुपचाप की अनदेखी कर दी गई हैं। सामान्य निर्देशिकाओं के अतिरिक्त, व्यक्तिगत पीथोनपाथ प्रविष्टियां, शुद्ध पायथन मॉड्यूल (या तो स्रोत या संकलित रूप में) वाले zipfiles का उल्लेख कर सकती हैं। एक्सटेंशन मॉड्यूल को ज़िपफ़ाइलों से आयात नहीं किया जा सकता है। डिफ़ॉल्ट खोज पथ अधिष्ठापन निर्भर है, लेकिन आमतौर पर उपसर्ग लिब्फीथॉन संस्करण (ऊपर PYTHONHOME देखें) के साथ शुरू होता है। यह हमेशा पिथोनपाट से जुड़ा हुआ है इंटरफ़ेस विकल्प के ऊपर वर्णित के रूप में PYTHONPATH के सामने खोज पथ में एक अतिरिक्त निर्देशिका डाली जाएगी। खोज पथ को एक पायथन प्रोग्राम के भीतर से चर sys. path के रूप में हेरफेर किया जा सकता है यदि यह एक पठनीय फ़ाइल का नाम है, तो उस फ़ाइल में पायथन आज्ञाएं निष्पादित की जाती हैं, पहले इंटरैक्टिव मोड में प्रदर्शित होने से पहले। फ़ाइल उसी नेमस्पेस में क्रियान्वित की जाती है, जहां इंटरैक्टिव कमांड निष्पादित होते हैं ताकि ऑब्जेक्ट्स को परिभाषित या आयात किया जा सके बिना इंटरैक्टिव सत्र में इस्तेमाल किया जा सके। आप इस फाइल में sys. ps1 और sys. ps2 संकेतों को भी बदल सकते हैं। इसे एक गैर-रिक्त स्ट्रिंग पर सेट करें, ताकि 4-अंकों वाले वर्ष को शामिल करने के लिए टाइम मॉड्यूल को स्ट्रिंग्स के रूप में निर्दिष्ट की जाने वाली तारीखों की आवश्यकता हो, अन्यथा 2-अंकीय वर्ष टाइम मॉड्यूल दस्तावेज में वर्णित नियमों के आधार पर परिवर्तित हो जाते हैं। यदि यह एक गैर-रिक्त स्ट्रिंग पर सेट है तो यह - O विकल्प को निर्दिष्ट करने के बराबर है यदि कोई पूर्णांक पर सेट है, तो यह निर्दिष्ट करने के बराबर है - O एकाधिक बार यदि यह एक गैर-रिक्त स्ट्रिंग पर सेट है तो यह - d विकल्प निर्दिष्ट करने के बराबर है। यदि कोई पूर्णांक पर सेट किया गया है, यह निर्दिष्ट करने के बराबर है - d एकाधिक बार। यदि यह एक गैर-रिक्त स्ट्रिंग पर सेट है, तो यह - i विकल्प निर्दिष्ट करने के बराबर है। यह चर को प्रोग्राम समाप्ति पर मोड का निरीक्षण करने के लिए os. environ का उपयोग करके पायथन कोड द्वारा संशोधित किया जा सकता है। यदि यह एक गैर-रिक्त स्ट्रिंग पर सेट है तो यह - u विकल्प निर्दिष्ट करने के बराबर है। यदि यह एक गैर-रिक्त स्ट्रिंग पर सेट है तो यह - v विकल्प निर्दिष्ट करने के बराबर है। यदि कोई पूर्णांक पर सेट किया गया है, यह निर्दिष्ट करने के बराबर है - v कई बार। यदि यह सेट है, तो पायथन आयात स्टेटमेंट में मामले को अनदेखा करता है। यह केवल विंडोज, ओएस एक्स, ओएस 2, और राकस पर काम करता है यदि यह सेट है, तो पायथन 8,87,170 स्रोत स्रोत मॉड्यूल के आयात पर. pyc या.pyo फ़ाइलों को लिखने का प्रयास करता है। यह - बी विकल्प निर्दिष्ट करने के बराबर है 2.6 संस्करण में नया यदि यह चर यादृच्छिक पर सेट है। प्रभाव - R विकल्प को निर्दिष्ट करने के समान है: एक स्ट्रैंड, मान, बाइट्स और डीटाई टाइम ऑब्जेक्ट्स के बीज को एक यादृच्छिक मान का उपयोग किया जाता है। अगर पीथोंहैसेड को पूर्णांक मान पर सेट किया गया है, तो इसे हैश रेडीमाइजेशन द्वारा कवर किए गए प्रकारों के हैश () बनाने के लिए एक निश्चित बीज के रूप में उपयोग किया जाता है। इसका उद्देश्य दोहरावदार हिसिंग की अनुमति देना है, जैसे कि दुभाषिया के लिए छद्म रूप से, या अजगर प्रक्रियाओं के क्लस्टर को हश मूल्यों को साझा करने की अनुमति देना। पूर्णांक सीमा 0,429 4 9 772 9 5 में दशमलव संख्या होना चाहिए। मान निर्दिष्ट करने से ही हैश मान की ओर बढ़ेगा, जैसे कि हैश रेडमाइजेशन अक्षम है। 2.6.8 संस्करण में नया वाक्यविन्यास एन्कोडिंग नाम में, stdinstdoutstaderr के लिए उपयोग किए गए एन्कोडिंग को ओवरराइड करता है: त्रुटिहैंडलर The: errorhandler हिस्सा वैकल्पिक है और str. encode () के रूप में एक ही अर्थ है। 2.6 संस्करण में नया PEP 370 8211 प्रति उपयोगकर्ता साइट-संकुल निर्देशिका यदि यह परिवेश चर सेट किया गया है, तो sys. argv0 को सी रनटाइम के माध्यम से प्राप्त मान के बजाय इसके मान पर सेट किया जाएगा। केवल मैक ओएस एक्स पर काम करता है। यह - W विकल्प के बराबर है यदि अल्पविराम से अलग स्ट्रिंग पर सेट किया गया है, तो यह निर्दिष्ट करने के बराबर है - W कई बार। यदि यह वातावरण चर 0 से विशेष रूप से सेट किया गया है। यह एसएसएल पहले आयात किए जाने पर सक्षम होने पर असल रूप से ssl. httpsverifycertificates () कॉल करने के बराबर है। विवरण के लिए ssl. httpsverifycertificates () का दस्तावेज़ीकरण देखें संस्करण 2.7.12 में नया 1.2.1। डीबग-मोड वेरिएबल्स इन वेरिएबल्स को सेट करना केवल पायथन के डिबग बिल्ड में एक प्रभाव है, अर्थात, अगर पायथन को-with-pydebug build विकल्प से कॉन्फ़िगर किया गया था यदि सेट है, तो पायथन थ्रेडिंग डीबग जानकारी प्रिंट करेगा। संस्करण 2.6 में बदल दिया गया है: पहले, इस चर को THREADDEBUG कहा जाता था। यदि सेट किया गया है, तो पायथन ऑब्जेक्ट्स को डंप करेगा और इंटरप्रिटर को बंद करने के बाद अभी भी ज़िक्र करेगा। यदि सेट किया गया है, तो हर बार एक नया ऑब्जेक्ट अखाड़ा बनाया गया है, और शटडाउन पर, प्रत्येक आवृत्ति मेथनरी आवंटन आंकड़े मुद्रित करेगा।

No comments:

Post a Comment