πPython Books
πPython Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° admin - @workakkk @ai_machinelearning_big_data - ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ @programming_books_it - Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ it ΠΊΠ½ΠΈΠ³ΠΈ @pythonl - π @ArtificialIntelligencedl - AI @datascienceiot - ml Π ΠΠ: clck.ru/3FmsTi
ΠΠΎΠ»ΡΡΠ΅π ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Telegram-ΠΊΠ°Π½Π°Π»Π° πPython Books
ΠΠ°Π½Π°Π» πPython Books (@pythonlbooks) ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠΌ. Π‘Π΅ΠΉΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ 33 560 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Ρ 3 887 ΠΌΠ΅ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ 19 173 ΠΌΠ΅ΡΡΠΎ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ Π ΠΎΡΡΠΈΡ.
π ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°
Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΡΡ, ΡΠΎΠ±ΡΠ°Π² Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΠΈΠ· 33 560 ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ².
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΎΡ 25 Π°Π²Π³ΡΡΡΠ°, 2026, ΠΊΠ°Π½Π°Π» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 30 Π΄Π½Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ -247, Π° Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 24 ΡΠ°ΡΠ° β -14, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠΈΠΉ ΠΎΡ Π²Π°Ρ ΠΎΡΡΠ°ΡΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΌ.
- Π‘ΡΠ°ΡΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: ΠΠ΅ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½
- Π£ΡΠΎΠ²Π΅Π½Ρ Π²ΠΎΠ²Π»Π΅ΡΡΠ½Π½ΠΎΡΡΠΈ (ER): Π‘ΡΠ΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΎΠ²Π»Π΅ΡΡΠ½Π½ΠΎΡΡΠΈ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 10.53%. Π ΠΏΠ΅ΡΠ²ΡΠ΅ 24 ΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π±ΠΈΡΠ°Π΅Ρ 2.79% ΡΠ΅Π°ΠΊΡΠΈΠΉ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ².
- ΠΡ Π²Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ: Π ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ 3 534 ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ². Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π°Π±ΠΈΡΠ°Π΅Ρ 936 ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ².
- Π Π΅Π°ΠΊΡΠΈΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ: ΠΡΠ΄ΠΈΡΠΎΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ: ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°ΠΊΡΠΈΠΉ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡ β 0.
- Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ: ΠΠΎΠ½ΡΠ΅Π½Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ΅ΠΌΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΊΡΡΡΠ°, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, docker.
π ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ½Π°Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°
ΠΠ²ΡΠΎΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΡ Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ:
βπPython Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°
admin - @workakkk
@ai_machinelearning_big_data - ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
@programming_books_it - Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ it ΠΊΠ½ΠΈΠ³ΠΈ
@pythonl - π
@ArtificialIntelligencedl - AI
@datascienceiot - ml
Π ΠΠ: clck.ru/3FmsTiβ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ 26 Π°Π²Π³ΡΡΡΠ°, 2026) ΠΊΠ°Π½Π°Π» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΡ Π²Π°ΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ. ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Π»ΠΈΡΠ½ΠΈΡ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
fit(), Π° ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ML.
PDF:
https://smlbook.org/book/sml-book-draft-latest.pdf
#DataScience #MachineLearning #ML #Mathematics #Algorithmsufunc Π½Π°ΡΠΈΠ½Π°Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ NumPy, ΡΡΡΡΡΠΈΠΊΠΈ ΡΡΡΠ»ΠΎΠΊ ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
Π NumPy 2.5 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ·ΠΊΠΈΡ
ΠΌΠ΅ΡΡ:
- ΡΠ°Π±Π»ΠΈΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ufunc Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° lock-free concurrent hash map;
- ΡΠ°ΡΡΡ ΠΎΠ±ΡΠΈΡ
ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΄Π΅Π»Π°Π»ΠΈ Β«Π±Π΅ΡΡΠΌΠ΅ΡΡΠ½ΡΠΌΠΈΒ», ΡΠ½ΠΈΠ·ΠΈΠ² ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΡΡΡΠ΅ ΡΡΡΠ»ΠΎΠΊ;
- Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π»ΠΈ Π½Π° PyMem_RawMalloc ΠΈ PyMem_RawFree.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ:
from concurrent.futures import ThreadPoolExecutor
import numpy as np
arrays = [
np.random.rand(5_000_000)
for _ in range(8)
]
with ThreadPoolExecutor(max_workers=8) as pool:
results = list(pool.map(np.sin, arrays))
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄ multiprocessing - ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΠΎΡΠΎΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠΉ CPU ΠΈ ΠΎΠ±ΡΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠΎ Π΅ΡΡΡ Π²Π°ΠΆΠ½Π°Ρ ΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ°:
free-threaded Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ thread-safe.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ndarray ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΡ Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π³ΠΎΠ½ΠΊΠ°ΠΌ, ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
- ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ worker;
- ΠΎΠ±ΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ;
- ΡΠ²Π½ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ.
Π£Π΄Π°Π»ΠΈΡΡ GIL ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π§ΡΠΎΠ±Ρ Python Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΏΠΎ ΡΠ΄ΡΠ°ΠΌ, ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ NumPy.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-pythonos.system() ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ Popen. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ subprocess.run() - ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄.
import subprocess
result = subprocess.run(
["git", "status", "--short"],
capture_output=True,
text=True,
check=True,
timeout=10,
)
print(result.stdout)
Π§ΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ:
- capture_output=True ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ stdout ΠΈ stderr
- text=True Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ bytes
- check=True Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ CalledProcessError, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ
- timeout=10 Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°Π²ΠΈΡΠ½ΡΡΡ Π½Π°Π²ΡΠ΅Π³Π΄Π°
ΠΡΠΈΠ±ΠΊΠΈ Π»ΡΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ²Π½ΠΎ:
import subprocess
try:
result = subprocess.run(
["git", "status", "--short"],
capture_output=True,
text=True,
check=True,
timeout=10,
)
except subprocess.TimeoutExpired:
print("ΠΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ")
except subprocess.CalledProcessError as error:
print(error.stderr)
else:
print(result.stdout)
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΠΈΡΠΊΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². shell=True Π½ΡΠΆΠ΅Π½ ΡΠ΅Π΄ΠΊΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
subprocess.run() - ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΡΠΉ ΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Python ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ, Git, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ, CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
https://pythonmorsels.com/running-subprocesses-in-python/