• ベストアンサー

WindowsでPythonで外部コマンドを動作させる時はどうしているのでしょうか?

Webページの作成をPHPからPythonに書き換えようとしているのですが、 PHPの shell_exec関数がPythonに見当たらないので os.getstatusoutputを使おうしたのですが、Linuxでは動作し、Windowsでは正しく動作しませんでした。 最近まで、日本でPythonがはやり、元々Rubyより前に英語圏で使い続けられたものなので、すごいと思っていましたがWindowsで動かない関数があるとは思ってもみませんでした。 皆さんは、Pythonで外部コマンドを動作させる時はどうしているのでしょうか? このように、LinuxではOKでWindowsではアウトというものは他に何かあるのでしょうか? Pythonに期待していたのですが、今はPHPのままでプログラミングします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

簡単なコマンド実行はos.systemで、リダイレクト等が必要ならsubprocess.Popenかな。 なお、ライブラリのOSによる挙動の違いはマニュアルに書いてあるので確認しましょう。 os.getstatusoutputはUNIX独特のサービスで「UNIXプラットフォームで利用できます」と書かれています。 # 存在も初めて知ったよ # かなり特殊な機能っぽいので普通は使わないのでは?

その他の回答 (1)

回答No.1

Pythonを普段から使っているわけじゃないけど、 一応手元のPython 3.1で http://docs.python.org/library/subprocess.html#convenience-functions を参考に、 import subprocess subprocess.call("notepad.exe") とか書いてみたら一応テキストエディタが立ち上がった(俺はTerapperを利用してメモ帳と置き換えてます)。 読んで試すの面倒くさかったので戻り値とか標準入力・標準出力とかの文字列を取得するようなコードは考えていない。 場合によっては上のほうにある、Popenメソッドで実行する必要があるかもしれない