私はexeファイルを呼び出し、パラメータ/入力データを入力します。python exeファイルをスクリプトで実行し、ユーザー名、パスワードなどを入力してください
cmd = dir_path + 'file.exe do something test'
p = Popen(cmd, shell=True, stdout=PIPE, stderr=STDOUT)
これはすでに正常に動作しています。 exeファイルを使ってこれを行う場合、あなたのユーザ名を入力する次のステップを実行するにはenterを押します。その後、パスワードなど。今私は私のスクリプトにこれを実装する方法を知らない、この手順はすべて私のスクリプトを完了している。基本的に私はどのようにPythonでのステップを実行するのか分からない。どんな助けでもThx。
UPDATE
今しようとした2つの方法(すべてのstackoverflowの上、この質問や他の人の中に言及しました)。
方法1>
p = subprocess.Popen(cmd, shell=False, stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE, universal_newlines=True)
# cmd represents the path of the exe file
p.stdin.write(username+"\n")
p.stdin.write(password+"\n")
p.sdin.close()
方法2
p = subprocess.Popen(cmd, shell=False, stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE, universal_newlines=True)
out,err = p.communicate("\n".join([username,password,"\n"]))
# last \n should terminate the exe file and communicate should wait for the process to exit
どちらかの方法を1行で同じ出力で私を提示:
ユーザー名:パスワード:
は通常、私はそれがあることを望んだ:
ユーザー名: "ユーザー名は、プロセス+ \で書いたn" は
パスワード: "パスワードはプロセス+ \で書いたn" は
アプリケーションがありますwindows7で実行している必要がありますし、exeファイルはコマンドライン内で実行されます。
だから、exeファイルがsubprocesssを通してそれを記述するので、そのことはできませんウェイ1とウェイ2をサポートしていないか、私は大きな間違いを犯していますことを多分可能です!
もう一度お返事ありがとうございます。
「PyAutoIt」を検索 –
は良く見えますが、私は働いているPCにソフトウェアやライブラリをインストールできません。サブプロセスやそれに類似するソリューションがありますか? – vicR
どのようにして通常どのようにユーザー名、パスワードを入力しますか?それはGUIアプリケーションですか?注意:[アプリケーションは、標準入力/出力ストリームの外でコンソールに直接読み書きすることができます(http://stackoverflow.com/q/20980965/4279)。つまり、 'stdin = PIPE'は役に立たないかもしれません。あなたのOSは何ですか? Unixでは、 'pexpect'を使うことができます。なぜそうですか?(http://pexpect.readthedocs.org/en/stable/FAQ.html#whynotpipe)。 – jfs