- ベストアンサー
WindowsでPythonで外部コマンドを動作させる時はどうしているのでしょうか?
Webページの作成をPHPからPythonに書き換えようとしているのですが、 PHPの shell_exec関数がPythonに見当たらないので os.getstatusoutputを使おうしたのですが、Linuxでは動作し、Windowsでは正しく動作しませんでした。 最近まで、日本でPythonがはやり、元々Rubyより前に英語圏で使い続けられたものなので、すごいと思っていましたがWindowsで動かない関数があるとは思ってもみませんでした。 皆さんは、Pythonで外部コマンドを動作させる時はどうしているのでしょうか? このように、LinuxではOKでWindowsではアウトというものは他に何かあるのでしょうか? Pythonに期待していたのですが、今はPHPのままでプログラミングします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
簡単なコマンド実行はos.systemで、リダイレクト等が必要ならsubprocess.Popenかな。 なお、ライブラリのOSによる挙動の違いはマニュアルに書いてあるので確認しましょう。 os.getstatusoutputはUNIX独特のサービスで「UNIXプラットフォームで利用できます」と書かれています。 # 存在も初めて知ったよ # かなり特殊な機能っぽいので普通は使わないのでは?
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
Pythonを普段から使っているわけじゃないけど、 一応手元のPython 3.1で http://docs.python.org/library/subprocess.html#convenience-functions を参考に、 import subprocess subprocess.call("notepad.exe") とか書いてみたら一応テキストエディタが立ち上がった(俺はTerapperを利用してメモ帳と置き換えてます)。 読んで試すの面倒くさかったので戻り値とか標準入力・標準出力とかの文字列を取得するようなコードは考えていない。 場合によっては上のほうにある、Popenメソッドで実行する必要があるかもしれない