• 締切済み

python3.2で外部プログラムを実行&操作

民安TALKという音声読み上げソフトを実行&操作するプログラムがあります。これをpythonで書いてみようと思ったのですが、どうすればいいのかがわかりません。 <環境など> 民安TALK(ソース) http://uep.s321.xrea.com/src/index.html OS:Windows7 version:python3.2 <具体的にどうしたいのか> テキストを入力し、再生ボタンを押すとテキストを読みあげるプログラム(.exe)に対し、そのプログラムがまだ起動していなかったら起動して、テキストを入力し、再生ボタンを押すということをやりたいです。ちなみに再生ボタンにはショートカットキーは設定されてません。 現在、プログラムを起動するところで詰まっています from subprocess import Popen p = Popen("絶対path") とすると外部プログラム(.exe)を実行できると思うのですが、これだと設定ファイルの読み込みに失敗してしまいます。pythonからではなく、コマンドプロンプトでカレントディレクトリをその外部プログラムのあるディレクトリに移動しプログラム名.exeとすれば実行できます。

みんなの回答

  • struct
  • ベストアンサー率72% (32/44)
回答No.1

要するに、その「民安TALK」というプログラムは 設定ファイルをカレント・ディレクトリから読み取るので 起動に失敗してしまうということですね。 それなら、Popen の cwd にディレクトリを指定してください。 import os from subprocess import Popen path = "絶対path" p = Popen(path, cwd=os.path.dirname(path)) 事前に python のカレント・ディレクトリを変更しておく方法でも大丈夫です。 import os from subprocess import Popen path = "絶対path" os.chdir(os.path.dirname(path)) p = Popen(path)

mikuriya8000
質問者

お礼

ありがとうございます。なるほど、cwdを設定すればよかったんですね!

関連するQ&A