πŸ”ΠšΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСский пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ python

Для автоматичСского пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ os ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os.execl().

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import os
import sys

def restart_program():
    python = sys.executable
    os.execl(python, python, *sys.argv)

# Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ здСсь

restart_program()

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСский пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Python ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° автоматичСски ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹, сущСствуСт нСсколько способов это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ для вас.

1. ИспользованиС Ρ†ΠΈΠΊΠ»Π° while

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСский пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсконСчный Ρ†ΠΈΠΊΠ» while. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ†ΠΈΠΊΠ»Π° while ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΈ нСобходимости.


while True:
    # Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ здСсь
    
    # УсловиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°
    if условиС:
        break

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ Π²Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» while Π±Π΅Π· условия Π²Ρ‹Ρ…ΠΎΠ΄Π°:


while True:
    # Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ здСсь

Однако Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с использованиСм бСсконСчных Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ использованию большого количСства рСсурсов.

2. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ os.system()

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ - использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ os.system() для пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Ѐункция os.system() позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· Python.

Для пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


import os

while True:
    # Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ здСсь
    
    # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    os.system("python имя_вашСй_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.py")

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ os, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "python имя_вашСй_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.py", Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3. ИспользованиС модуля subprocess

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ subprocess. ΠœΠΎΠ΄ΡƒΠ»ΡŒ subprocess позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ процСсс Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования модуля subprocess для пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:


import subprocess

while True:
    # Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ здСсь
    
    # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    subprocess.call(["python", "имя_вашСй_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.py"])

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ subprocess.call() для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ "python имя_вашСй_ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.py" ΠΈ пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСский пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ соотвСтствуСт вашим потрСбностям. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсконСчный Ρ†ΠΈΠΊΠ» while, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os.system() ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ subprocess для пСрСзапуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ соотвСтствуСт цСлям вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ рСсурсов.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автозапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Python ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автозапуск Python скриптов ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Автозапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Π² Geany Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Python? πŸ”₯🐍

🐍Бколько стоит ΠΏΠΈΡ‚ΠΎΠ½ Π² Π‘Π°ΠΌΠ°Ρ€Π΅? Π¦Π΅Π½Ρ‹ ΠΈ прСдлоТСния Π½Π° ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠ² Π² Π‘Π°ΠΌΠ°Ρ€Π΅

πŸ’» Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ type Π² Python? Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ встроСнная функция type Π² Python

πŸ”ΠšΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ автоматичСский пСрСзапуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ python

πŸƒ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Python: простыС инструкции для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐍

Как вывСсти Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ число Π² Python? 🎲 ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸš€ Как возвСсти Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python: ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€ΡŽΠΊΠΈ ΠΈ совСты для программистов