長年の潜伏者、初めてのポスター。
サブプロセスの使用に関するインターウェブ全体にかなりの数の例があることは知っていますが、新しいターミナルウィンドウを作成してコマンドを送信するために必要な手順を説明する例をまだ見つけていません. 直接のサブプロセス呼び出しを介してツールやスクリプトを起動するための回避策を提供する投稿はたくさんありますが、コマンドを端末に適切に送信する方法に関する最初の質問に実際に答える投稿は見つかりませんでした。
私の場合、新しいターミナル ウィンドウを開き、特定のバージョンのアプリケーションへのパスを送信し、最後にそのアプリケーションで開きたいファイルへのパスを送信する必要があります。
サブプロセスを使用して必要なアプリケーションを直接呼び出す方法 (表示されている端末を開かずに)、サブプロセスを使用して新しい端末を開く方法、およびアプリケーション パスまたはファイル パスのいずれかを呼び出す方法 (両方を取得することはできませんでした) を知っています。 --args for open() または私が見つけた他の回避策を使用して一緒に実行します)。
端末を開いた後、端末にコマンドを送信できませんでした。以下は、端末の新しいインスタンスを開いて ls を送信する単純なバージョンですが、これは機能しません。
from subprocess import Popen, PIPE, STDOUT
p = Popen(['open', '-a', 'Terminal', '-n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
output = p.communicate(input='ls')
print(output)
これは些細な問題である可能性が高く、何かが欠けているだけですが、必要なものを説明する情報や例を見つけることができず、イライラし始めているので、助けを求めることにしました.
どんな支援も大歓迎です!ティア