فارسی
باز کردن در Telegram

پیام🟢 Потоки введення/виведення. Практика.

30 دسامبر 2025
P
🟢 Потоки введення/виведення. Практика. У Python для створення підпроцесів використовується бібліотека subprocess. Вона дозволяє запускати програми та працювати з їхніми потоками введення/виведення. subprocess добре підходить для простих випадків з синхронном кодом. Але цікавіше розглянути асинхронний приклад з asyncio, який працює одразу з усіма трьома потоками введення/виведення. Ідея проста: запускаємо Python у інтерактивному режимі та виконуємо дві операції — 2+2 і 1/0. import asyncio import sys async def read_stream(name: str, stream: asyncio.StreamReader): while data := await stream.readline(): line = data.decode("utf8").rstrip() print(f"[{name}]", line) async def main(): process = await asyncio.create_subprocess_exec( sys.executable, "-i", # python -i stdin=asyncio.subprocess.PIPE, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, ) stdout_task = asyncio.create_task( read_stream("stdout", process.stdout), ) stderr_task = asyncio.create_task( read_stream("stderr", process.stderr), ) process.stdin.write(b"2+2\n") await process.stdin.drain() process.stdin.write(b"1/0\n") await process.stdin.drain() process.stdin.write(b"exit()\n") await process.stdin.drain() await process.wait() # Чекаємо завершення підпроцесу Вивід у консоль: [stderr] Python 3.11.6 (tags/v3.11.6:8b6ee5b, Oct 2 2023, 14:57:12) [MSC v.1935 64 bit (AMD64)] on win32 [stderr] Type "help", "copyright", "credits" or "license" for more information. [stdout] 4 [stderr] >>> >>> Traceback (most recent call last): [stderr] File "<stdin>", line 1, in <module> [stderr] ZeroDivisionError: division by zero [stderr] >>> Як бачимо ми отримали текст окремо stdout і окремо stderr. Звісно аналогічним чином ми можемо запускати системі утіліти або інші програми написані на інших мовах програмування — це простір для автоматизації. Але трохи дивно чому python пише текст привітання саме у stderr
1 · 721 ·

در همان حوالی فید

PPython Materials For Beginners🟣 Потоки вводу/виводу (Input/Output Streams, stdin/stdout/stderr) Повернемось до теми Корисні речі, які варто знати про процес У попередньому прикладі коду я виPPython Materials For Beginners ChatПравильні відповіді: ✅ git reset A.txt ✅ git restore --staged A.txt reset може приймати не тільки ґеш коміту але й файл. По суті виконується скорочена версія gi
این پیام
PPython Materials For BeginnersЗнову git www.youtube.com/watch?v=y6meVhckYmQ #gitТТочка or Крапка/report
PPython Materials For Beginners ChatPython Materials For Beginners Chat@python_code_ua · گروه · فناوری
16عضو3نویسنده در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما