पर संभव डुप्लिकेट select.select में sys.stdin का उपयोग करना:
Can select() be used with files in Python under Windows?विंडोज
UNIX पर मैं अजगर में select.select
को sys.stdin
पारित करने में सक्षम हूँ। मैं विंडोज़ पर ऐसा करने का प्रयास कर रहा हूं, लेकिन विंडोज़ पर पायथन में select.select
इसे अनुमति नहीं देगा।
मैं जो कर रहा हूं उसका अधिक सटीक वर्णन करने के लिए https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.py देखें।
unix_run_poll
फ़ंक्शन वह है जिसे मैं विंडोज़ पर पूरा करने की कोशिश कर रहा हूं। मूल विचार यह है कि मेरे पास एक सर्वर से सॉकेट कनेक्शन है जिसने स्ट्रीमिंग स्टडीन, स्टडआउट, स्टेडर को दूरस्थ रूप से चल रही प्रक्रिया में जोड़ दिया है और मैं स्थानीय क्लाइंट से इसके साथ बातचीत कर रहा हूं और ऐसा लगता हूं कि स्थानीय क्लाइंट चल रहा है प्रक्रिया।
win32_run_poll
विंडोज़ को पोर्ट करने का मेरा प्रयास है और यह काम करता है। यह थोड़ा गड़बड़ है और दृष्टिकोण, आईएमओ, बहुत बुरा है।
क्या किसी के पास सुझाव है कि इसे कैसे सुधार किया जा सकता है? Win32api पर निर्भरता आदर्श से कम है, लेकिन मैं इसे रखने के साथ ठीक हूँ।
क्या आपने ईवेंट लूप कार्यान्वयन के लिए समर्पित पुस्तकालयों/ढांचे को देखा है? उदाहरण के लिए, [मुड़] [http://twistedmatrix.com/trac/) में [Win32 रिएक्टर] के दो कार्यान्वयन हैं (http://twistedmatrix.com/documents/current/core/howto/choosing-reactor.html# win32_wfmo)। – user4815162342
मजेदार आप इसका जिक्र करते हैं। मैं अभी यह कर रहा था। :-) –
एक और संभावना है कि वास्तव में स्क्रिप्ट के stdin/stdout के रूप में इसे लपेटने के बजाय, अपनी स्क्रिप्ट को सॉकेट दें, और फिर आप केवल select.select का उपयोग कर सकते हैं। – abarnert