2016-01-09 11 views
9

क्या एसिंसिओ फ़ाइल संचालन के लिए एसिंक्रोनस I/O का समर्थन करता है? यदि हां, तो मैं इसे पायथन 3.5 में एसिंक/प्रतीक्षा वाक्यविन्यास कोड के साथ कैसे उपयोग कर सकता हूं?क्या Asyncio फ़ाइल संचालन के लिए एसिंक्रोनस I/O का समर्थन करता है?

+1

आपका मतलब दस्तावेज़ों और उदाहरणों में है? https://docs.python.org/3/library/asyncio-eventloop.html#watch-file-descriptors https://docs.python.org/3/library/asyncio-eventloop.html#watch-a-file -डिस्क्रिप्टर-फॉर-रीड-इवेंट –

+0

मेरा मतलब है, मुझे गैर-अवरुद्ध फ़ाइल I/O कार्यक्षमता की आवश्यकता है। लेकिन दस्तावेज़ों में मुझे केवल वर्णनात्मक कार्यों की निगरानी मिली। – CthUlhUzzz

+0

यदि आप सिर्फ गैर-अवरुद्ध आईओ चाहते हैं तो आपको केवल पाइथन के थ्रेड का उपयोग करने में सक्षम होना चाहिए। क्या आप एसिंक आईओ या गैर-अवरुद्ध आईओ चाहते हैं? http://stackoverflow.com/questions/319132/asynchronous-file-writing-possible-in-python में कुछ उपयोगी जानकारी हो सकती है। –

उत्तर

8

अधिकांश ऑपरेटिंग सिस्टम एसिंक्रोनस फ़ाइल ऑपरेशंस का समर्थन नहीं करते हैं। यही कारण है कि asyncio या तो उनका समर्थन नहीं करता है।

आगे स्पष्टीकरण के लिए the asyncio wiki देखें।

+0

यह है। यहां तक ​​कि 'node.js' एसिंक फ़ाइल एपीआई –

4

यह निर्भर करता है कि आप किस लाइब्रेरी का उपयोग करते हैं।

curio इस कार्यक्षमता, https://curio.readthedocs.io/en/latest/reference.html#module-curio.file

सादा asyncio नहीं है प्रदान करता है, लेकिन 3 पार्टी पुस्तकालयों उदाहरण के लिए, देखते हैं https://github.com/Tinche/aiofiles (जो वास्तव में सिंक्रोनस फ़ाइल एक्सेस थ्रेड्स में अलग है)

आधुनिक ऑपरेटिंग सिस्टम एसिंक्रोनस फ़ाइल प्राइमेटिव प्रदान करते हैं, लेकिन ये भिन्न हैं, इस प्रकार प्रत्येक को अपने कार्यान्वयन की आवश्यकता होगी। तुलना करें:

मुझे लगता है किसी को जल्द ही node.js से async कब अंतर्निहित बाहर चीर और एक सभ्य अजगर पुस्तकालय कर देगा, या शायद किसी को पहले से ही है।

+0

प्रदान करने के लिए आंतरिक रूप से थ्रेड पूल का उपयोग करता है, जहां तक ​​मुझे पता है, आपके द्वारा उल्लिखित सभी विकल्पों का उपयोग थ्रेड (क्यूरियो, एआईफाइल, ग्लिब एओओ कार्यान्वयन, और यहां तक ​​कि विंडोज ओवरलैप्ड I/O भी थ्रेड का उपयोग करता है हुड के नीचे पूल)। – jfs

2

asyncio इस के लिए समर्थन नहीं है। हालांकि, aiofiles बस इसका समर्थन करता है। कृपया एक नज़र डालें।

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