Python での Bash コマンドの実行
問題
Python スクリプトは、os.system() を使用した Bash コマンドの実行に失敗します。エラー メッセージは、Python モジュールが見つからないことを示しています。
回答
この問題を解決し、Python での Bash コマンドの実行についての理解を深めるには、次の点を考慮してください:
-
サブプロセス モジュールを優先します: subprocess.run() または次のような関連メソッドを使用しますsubprocess.check_call() を使用すると、エラー処理と制御が向上します。 os.system() の使用を避けてください。
-
text=True を使用します: 標準出力とエラーを Unicode 文字列にデコードするには、text=True を設定します。
-
shell=True と True を理解するshell=False:
- shell=True は、実行のために文字列をシェルに渡します。
- shell=False は、シェルをバイパスして、オペレーティング システムに引数のリストを提供します。 .
一般に、文字列のリストをshell=Trueで渡すか、単一の文字列をshell=Trueで渡すことにより、これらのオプションを混在させないでください。 shell=False.
-
sh と Bash の違いを考慮する:
- 実行可能ファイルを指定しない限り、サブプロセスはデフォルトで /bin/sh を使用します='/bin/bash'、Bash のみに必要syntax.
-
親環境の変更を避ける:
- 子プロセスは、変数の設定を含め、親の環境を変更できません。または作業ディレクトリを変更します。 os.environ[] を使用するか、env= を使用して環境変数を子プロセスに渡します。
-
Python からの Python の実行を回避します:
- スクリプトをスクリプトとして実行する代わりに、他の Python モジュールをインポートし、その関数を直接呼び出すことを検討してください。サブプロセス。
以上がPython スクリプト内から Bash コマンドを正常に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。