2009-12-02 16 views
31

पायथन, पावरशेल, और अन्य स्क्रिप्टिंग वातावरण के क्या फायदे हैं? हम अपनी स्क्रिप्टिंग को मानकीकृत करना चाहते हैं और वर्तमान में मानक के रूप में बल्ले और सीएमडी फाइलों का उपयोग कर रहे हैं। मुझे लगता है कि पाइथन इनसे बेहतर विकल्प होगा, लेकिन मैं पावरशेल और अन्य स्क्रिप्टिंग टूल का भी शोध कर रहा हूं।पायथन, पावरशेल, या अन्य?

लिपियों वेब सेवाओं, या अन्य अनुप्रयोगों/उपकरण विशिष्ट मानदंडों के साथ एक विशेष क्रम में चलाने की आवश्यकता है कि कॉल करने के लिए इस तरह के wget आदि के रूप में प्रक्रियाओं को गति प्रदान करने के लिए किया जाएगा।

हम मुख्य रूप से विंडोज ढेर के साथ काम है, लेकिन वहाँ एक अच्छा मौका है कि हम भविष्य में यूनिक्स का समर्थन करने की आवश्यकता होगी है।

धन्यवाद।

+0

क्या ऑपरेटिंग सिस्टम (ओं)? – Bratch

+1

इस प्रश्न में कुछ बेकार जवाब है। यह या तो लोग हैं जो पाइथन या पॉवरशेल में अच्छे लोगों के लिए अच्छे हैं ... यदि आप सक्रिय निर्देशिका में इंटरफेसिंग कर रहे हैं, तो PowerShell अब तक का सबसे आसान तरीका है। यदि आप जीयूआई एप्लीकेशन लिख रहे हैं या क्रॉस-प्लेटफॉर्म सपोर्ट की आवश्यकता है - शायद पायथन। प्रत्येक भाषा अलग-अलग चीजों को दूसरे की तुलना में बेहतर करती है। –

उत्तर

14

आयरनपीथन के पास सभी समान .NET भाषाओं के लिए Windows पर सिस्टम निर्भर स्क्रिप्ट लिखने के लिए .NET असेंबली तक पहुंच है। लेकिन पाइथन के समान ज्ञान का उपयोग लिनक्स, सोलारिस, बीएसडी, या ओएस/एक्स पर समान स्क्रिप्ट लिखने के लिए किया जा सकता है। यदि आप विंडोज पर मानक सी पायथन का उपयोग करते हैं, तो आप किसी भी COM ऑब्जेक्ट तक पहुंच सकते हैं और यह वीबीए उदाहरणों को पायथन कोड में अनुवाद करने के लिए सीधा है। SPAMBayes Outlook प्लगइन एक अच्छा उदाहरण है कि आप इसके साथ कितना दूर जा सकते हैं। http://spambayes.sourceforge.net/

पायथन की सबसे अच्छी सुविधा "बैटरी शामिल" मानक लाइब्रेरी है, और भले ही यह आयरनपीथन के साथ वितरित न हो, भले ही आप आयरनपीथन को सीपीथॉन से स्थापित लाइब्रेरी फ़ोल्डर में इंगित करें। वास्तव में, अधिकांश शुद्ध पायथन पुस्तकालय, यानी संकलित सी या सी ++ मॉड्यूल, आयरनपीथन के साथ ठीक काम करेंगे। विंडोज़ पर, आपके पास Cygwin.com के माध्यम से पाइथन स्थापित करने का विकल्प भी है जो आपको उन मॉड्यूल का उपयोग करने की अनुमति देता है जिन्हें सामान्य रूप से यूनिक्स-केवल माना जाता है। यदि आप क्रॉस-प्लेटफ़ॉर्म स्क्रिप्ट को बनाए रखना चाहते हैं तो यह उपयोग में हो सकता है और आप प्रत्येक ओएस के लिए विशेष केस कोडिंग के बजाय स्थिरता पसंद करते हैं।

और यदि आपको कुछ जावा कक्षाओं का लाभ उठाने की आवश्यकता हो, तो ज्योथन आपको उसी पायथन भाषा का उपयोग करने की अनुमति देता है जिसे आप इसका लाभ उठाने के लिए जानते हैं। इसे RabbitMQ जैसे एक अच्छे संदेश क्यूइंग सिस्टम के साथ संयोजित करें, और आपके पास काम करने में सहयोग करने वाली कई मशीनों पर पाइथन, ज्योथन और आयरनपीथन स्क्रिप्ट हो सकती हैं।

वहां तीसरे पक्ष के पायथन मॉड्यूल का एक विशाल चयन भी है और आप नई खोजों से बाहर होने से पहले स्वादिष्ट.com के माध्यम से कई महीनों तक यात्रा कर सकते हैं। इसका मतलब यह है कि जब आपको कुछ मानक पायथन पुस्तकालयों का हिस्सा नहीं चाहिए, तो गूगलिंग का एक बिट अक्सर समाधान के साथ आता है।

पटकथा को बदलने के लिए पार्टी, अध्यक्ष एवं प्रबंध निदेशक और बैट फ़ाइलों के लिए कुछ उपयोगी अजगर मॉड्यूल PEXPECT http://www.noah.org/wiki/Pexpect और अजगर WMI हैं http://timgolden.me.uk/python/wmi/index.html

लेकिन, अंत में, अजगर भी सरल सरल स्क्रिप्ट है कि किसी भी जरूरत नहीं है के लिए बस ठीक काम करता है विशेष विशेषताएं ... अभी तक!

+2

पावरशेल पर आयरनपीथन का एक अन्य लाभ यह है कि बैक-वर्जन ऑपरेटिंग सिस्टम के लिए, जब तक आपके पास .NET पहले से मौजूद है, इसे केवल XCOPY परिनियोजन द्वारा लुढ़काया जा सकता है। –

1

प्रश्न अस्पष्ट हैं, लेकिन पाइथन PowerShell से अधिक पोर्टेबल है; हालांकि, विंडोज़ पर पाइथन प्रचलित नहीं है। लेकिन दूसरी तरफ, मुझे विश्वास नहीं है कि पावरशेल स्क्रिप्ट विंडोज मशीन पर काम करेगी जिसमें पावरशेल नहीं है। मतलब वे पुराने फैशन वाले cmd खोल में काम नहीं कर सकते हैं। मुझे लगता है कि आपको पाइथन के लिए भी अधिक दस्तावेज़ीकरण और पुस्तकालय मिलेंगे।

पावरहेल पैथ की तरह प्रोग्रामिंग भाषा की तुलना में बैश की तरह अधिक है।

शायद आप यह बता सकते हैं कि आप अपनी स्क्रिप्ट के साथ क्या करना चाहते हैं और आपको शायद बेहतर उत्तर मिलेंगे।

+0

प्रश्न अधिक स्पष्ट होने के लिए संपादित किया गया था, इसलिए मेरा जवाब थोड़ा मूर्ख दिख सकता है। – jonescb

+0

उत्तर क्यों संपादित नहीं करें? –

+0

आप बहुत गलत हैं; PowerShell ** एक ऑब्जेक्ट उन्मुख प्रोग्रामिंग भाषा ** है। आप पोर्टेबिलिटी के बारे में कुछ हद तक गलत भी हैं - यूनिक्स पर्यावरण में पोर्ट पावरहेल के लिए एक एपीआई मौजूद है –

2

पायथन के लिए एक लाभ तीसरे पक्ष के पुस्तकालयों की उपलब्धता और एक व्यापक अंतर्निहित मानक पुस्तकालय है। आप पाइथन के साथ विभिन्न ऑपरेटिंग सिस्टम और वातावरण पर बहुत शक्तिशाली संचालन कर सकते हैं। यही कारण है कि हम कार्यालय में पाइथन का उपयोग न केवल एक स्क्रिप्टिंग भाषा के रूप में करते हैं बल्कि हमारे सभी डेटाबेस बैकएंड अनुप्रयोगों के लिए भी करते हैं।

हम भी XML और HTML scraping के लिए इसका इस्तेमाल करते हैं, ElementTree और BeautifulSoup का उपयोग, जो बहुत शक्तिशाली और लचीला अजगर विशेष काम के इस प्रकार के लिए पुस्तकालय हैं।

44

पाइथन एक महान, सर्व-उद्देश्य उपकरण के रूप में काम करता है यदि आप अपने विंडोज़ बॉक्स पर सीएमडी और बीएटी स्क्रिप्ट को प्रतिस्थापित करना चाहते हैं, और आपके (एल) इनक्स बॉक्स पर स्क्रिप्ट चलाने के लिए भी लिखा जा सकता है। यह एक महान, लचीली भाषा है और आप इसे फेंकने वाले कई कार्यों को संभाल सकते हैं।

कहा जा रहा है, Powershell विंडोज बक्से के सभी तरह के प्रशासन के लिए एक आश्चर्यजनक बहुमुखी उपकरण है; इसमें .NET की सभी शक्तियां हैं, एमएस उत्पादों जैसे एक्सचेंज और एक्टिव डायरेक्टरी, जो टाइम्सवर हैं, में कई और इंटरफेस हैं। आपकी स्थिति के आधार पर, आप एमएस उत्पादों के लिए उपलब्ध इंटरफेस की वजह से अन्य स्क्रिप्टिंग भाषाओं की तुलना में पीएस का अधिक उपयोग कर सकते हैं, और मुझे पता है कि एमएस ने उन एपीआई को कई उत्पादों में उपलब्ध कराने की प्रतिबद्धता की है। पावरहेल विंडोज के सभी मौजूदा संस्करणों (विंडोज 7+, विंडोज सर्वर 2008+) पर स्थापित है, और पुराने संस्करणों पर काफी आसानी से स्थापित है।

अपने संपादित कि आपकी स्क्रिप्ट अन्य प्रक्रियाओं शुरू करने के लिए उपयोग किया जाएगा करने के लिए, मुझे लगता है कि इस मामले में लगता है कि उपकरणों की या तो बिल को फिट। मैं पीएस की अनुशंसा करता हूं यदि आप केवल सेवा कॉल के बजाए स्क्रिप्ट में किसी भी व्यवस्थापक-एश कार्यों को जोड़ने की योजना बनाते हैं, लेकिन यदि आप जो वर्णन करते हैं उससे चिपके रहते हैं, तो पाइथन अच्छा है।

+4

+1 अच्छी तरह से संतुलित उत्तर। – micahwittman

+0

+1 अच्छा जवाब, लेकिन मुझे लगता है कि उसे यह निर्दिष्ट करने की ज़रूरत है कि वह एक बेहतर उत्तर प्राप्त करने के लिए किस ऑपरेटिंग सिस्टम को करने की योजना बना रहा है। – Bratch

+0

मैं पावरहेल के लिए बात नहीं कर सकता लेकिन पाइथन वीबीए की तुलना में एमएस वर्ड (ओएलई ऑटोमेशन के माध्यम से) स्क्रिप्ट करने का एक अच्छा तरीका था। – jfs

2

मुझे यह दुखी लगता है कि अभी तक कोई भी अच्छा ओल 'पर्ल का उल्लेख नहीं कर रहा है।

+0

पावरशेल इसके वंश में से एक है, हालांकि। –

+0

पावरशेल अभी भी इसकी जड़ों में है, और आमतौर पर केवल 7 वर्ष से कम उपलब्ध है (हाँ, मुझे पता है कि इसे एक्सपी पर स्थापित किया जा सकता है)। हालांकि पर्ल विंडोज़ पर मूल नहीं है, फिर भी मुझे यह अधिक व्यावहारिक लगता है, क्योंकि यह सभी विंडोज संस्करणों के लिए मौजूद है, और इसकी कई उपयोगिता पोर्टेबल है। उल्लेख नहीं है कि शायद कुछ भी ओप चाहता है कि कोई इसमें पहले से ही कर चुका है <- इसे धोखा दे दो :) (पीएस के खिलाफ rooting नहीं, सिर्फ क्रूर वास्तविकता बिछाने)। – Rook

1

आपको वेब आधारित पटकथा के साथ काम कर रहे हैं, तो ActiveState के ActivePython है कि आप सूट करेगा Windows specific API's के लिए समर्थन की एक बहुत कुछ है करने के लिए लगता है और यह वेब आधारित काम करने के लिए महान पोर्टेबल पुस्तकालयों के टन है।

18

हम अपनी स्क्रिप्टिंग को मानकीकृत करना चाहते हैं और वर्तमान में मानक के रूप में बल्ले और cmd फ़ाइलों का उपयोग कर रहे हैं।

ऐसा लगता है जैसे विंडोज आपका मुख्य वातावरण है।

यदि ऐसा है, तो PowerShell पायथन से कहीं बेहतर होगा।

  • PowerShell विंडोज सर्वर 2008 तैनात करने की कोई ज़रूरत नहीं के साथ शामिल है/हर नए सर्वर है कि में रोल पर पायथन क्रम स्थापित करें।
  • पूरे Microsoft सर्वर से संबंधित सॉफ्टवेयर (एक्सचेंज, सिस्टम्स सेंटर, आदि) कार्यक्षमता के लिए PowerShell cmdlets और विस्तार के लिए संक्रमण कर रहा है
  • 3 पार्टी विक्रेताओं (जैसे SCOM प्लगइन्स) भी कार्यक्षमता को बेनकाब करने के
PowerShell स्क्रिप्ट/cmdlets का उपयोग होगा 10

मुझे पावरशेल की तुलना में पाइथन के साथ और अधिक अनुभव है, लेकिन जहां तक ​​माइक्रोसॉफ्ट पारिस्थितिक तंत्र का संबंध है, लेखन दीवार पर है: पावरशेल के साथ जाएं। अन्यथा, आप सिर्फ अनाज के खिलाफ जा रहे हैं और पाइथन और हर किसी के cmdlets के बीच लगातार interop-ing।

सिर्फ इसलिए कि आप पाइथन में import win32com.client कोड कर सकते हैं, यह विंडोज वातावरण में पावरशेल के साथ समान पैर पर नहीं डालता है।

3

यदि आप ऐसा करते हैं तो बहुत सारे सिस्टम विशिष्ट प्रोग्रामों के साथ कोई प्रोग्रामिंग प्रोग्राम नहीं है, तो ओएस विशिष्ट शैल पूर्ण सामान्य उद्देश्य प्रोग्रामिंग भाषा की तुलना में बेहतर विकल्प हो सकता है।