Python による自動化。

Linda Hamilton
リリース: 2024-12-02 15:15:16
オリジナル
326 人が閲覧しました

Automações com Python.

このコードは、Python プログラムを別々の端末で非同期に実行するように設計されています。コードの各部分が何をするのかを順を追って説明します。

1.サブプロセスモジュールのインポート

import subprocess
ログイン後にコピー
ログイン後にコピー

サブプロセス モジュールを使用すると、Python プログラムからオペレーティング システム プロセスを作成および管理できます。ここでは、新しいターミナル ウィンドウで Python プログラムを起動するために使用されます。

2. execute_program 関数

def executar_programa(caminho_programa):
    try:
        # Executa o programa em uma nova janela de terminal
        subprocess.Popen(
            ["python", caminho_programa],
            creationflags=subprocess.CREATE_NEW_CONSOLE
        )
        print(f"Programa {caminho_programa} iniciado com sucesso.")
    except Exception as e:
        print(f"Erro ao iniciar o programa {caminho_programa}: {e}")
ログイン後にコピー

この関数は、新しいターミナル ウィンドウで Python プログラムを実行します。

  • Program_path 引数: 実行する Python スクリプトの絶対パス。

  • subprocess.Popen: オペレーティング システムで新しいプロセスを開始します。

    • リスト ["python",program_path] はターミナルで実行されるコマンドです。最初の「python」項目は Python インタープリターであり、2 番目のプログラムパス項目は実行される Python スクリプトです。
    • creationflags=subprocess.CREATE_NEW_CONSOLE: このフラグは、プロセスを現在のターミナル ウィンドウで実行するのではなく、新しいターミナル ウィンドウを作成します。
  • try と例外: try ブロックはプログラムの実行を試みます。エラーが発生した場合 (スクリプト パスが間違っているなど)、Exception ブロックが例外をキャッチし、エラー メッセージを出力します。

3. メイン関数

def main():
    # Caminhos para os programas que você deseja executar
    programa1 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti\eaEquiti108.py"
    programa2 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti690\eaEquiti690.py"
    programa3 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaFtmo\eaFtmo.py"
    programa4 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti224\eaEquiti224.py"

    # Executa cada programa em um terminal separado
    executar_programa(programa1)
    executar_programa(programa2)
    executar_programa(programa3)
    executar_programa(programa4)
ログイン後にコピー

メイン関数内:

  • プログラムのパスの定義: ここでは、実行する Python スクリプトの絶対パスを使用して 4 つの変数 (program1、program2、program3、program4) が定義されています。バックスラッシュの問題を避けるために、パスは生の文字列 (接頭辞 r が付く) として書き込まれます。

  • execute_program 関数の呼び出し: プログラムごとに、execute_program 関数が呼び出されます。各 Python スクリプトは新しいターミナル ウィンドウで実行されます。

4. 条件付き実行 if __name__ == "__main__":

import subprocess
ログイン後にコピー
ログイン後にコピー
  • if __name__ == "__main__":: この条件は、Python ファイルが直接実行されているかどうか (別のスクリプトのモジュールとしてインポートされていないかどうか) をチェックします。直接実行すると、main() 関数が呼び出され、プログラムが開始されます。

フローの概要:

  1. スクリプトは main 関数を実行することで開始されます。
  2. メイン関数は、4 つのスクリプトのそれぞれに対してexecute_programaを呼び出し、プログラムのパスを渡します。
  3. execute_program 関数は、subprocess.Popen を使用して、新しいターミナル ウィンドウで各 Python スクリプトを実行します。
  4. プログラムの実行中にエラーが発生した場合、エラーがキャプチャされ、メッセージが表示されます。

オペレーティング システムでの動作:

  • CREATE_NEW_CONSOLE を指定した subprocess.Popen は、新しいオペレーティング システムのターミナル ウィンドウ (Windows では通常は cmd または PowerShell) を開き、これらの各ウィンドウで指定された Python プログラムを実行します。

これがコードの基本的な機能です。さらに詳細や調整が必要な場合は、お気軽にお問い合わせください。

以上がPython による自動化。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート