プロが教えるわが家の防犯対策術!

Webページの作成をPHPからPythonに書き換えようとしているのですが、
PHPの shell_exec関数がPythonに見当たらないので os.getstatusoutputを使おうしたのですが、Linuxでは動作し、Windowsでは正しく動作しませんでした。
最近まで、日本でPythonがはやり、元々Rubyより前に英語圏で使い続けられたものなので、すごいと思っていましたがWindowsで動かない関数があるとは思ってもみませんでした。

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

このように、LinuxではOKでWindowsではアウトというものは他に何かあるのでしょうか?
Pythonに期待していたのですが、今はPHPのままでプログラミングします。

A 回答 (2件)

簡単なコマンド実行はos.systemで、リダイレクト等が必要ならsubprocess.Popenかな。



なお、ライブラリのOSによる挙動の違いはマニュアルに書いてあるので確認しましょう。
os.getstatusoutputはUNIX独特のサービスで「UNIXプラットフォームで利用できます」と書かれています。
# 存在も初めて知ったよ
# かなり特殊な機能っぽいので普通は使わないのでは?
    • good
    • 0

Pythonを普段から使っているわけじゃないけど、


一応手元のPython 3.1で
http://docs.python.org/library/subprocess.html#c …
を参考に、

import subprocess
subprocess.call("notepad.exe")

とか書いてみたら一応テキストエディタが立ち上がった(俺はTerapperを利用してメモ帳と置き換えてます)。
読んで試すの面倒くさかったので戻り値とか標準入力・標準出力とかの文字列を取得するようなコードは考えていない。
場合によっては上のほうにある、Popenメソッドで実行する必要があるかもしれない
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!