Home > Python > [Python] os.system vs os.popen

[Python] os.system vs os.popen

os.system()を使ってExplorerを開くという処理を書いたのですが、
コマンドを実行するといちいちDOS窓が出るので、うざったいなぁと思っていました。


そんな時に、あきおさんのブログで、こんなのを発見しました。
os.system以外に外部コマンド実行する方法ってあるのねと思い、僕も試してみました。

こんな感じ。↓
os.popen(‘explorer “%s”‘ % opendir)

実行してみたところ、DOS窓も出なくなり、スッキリ。
本来はこういう使い方じゃないんだろうけど、まぁ良しとします:P

ちなみに、外部コマンドを実行する方法はこれ以外にもcommandsモジュールがあります。
どれをどういうときに使うのが効果的なのか謎なので、とりあえず手軽なところから使ってます。

Comments:4

あきを 2008/11/13

commandsなんてあったんですね
知らなかった

逆にDOS窓を出したいときってどうしてますか?
system(“cmd.exe ***.bat”)
ってすると、DOS窓が立ち上がらずに
script editor内に標準出力が吐き出されてしまうんですよね

tai 2008/11/14

>あきをさん
僕もこの間、コマンドを実行しないといけなくてちょっと調べてみたんですが、どれも大して変わらないような気がしました、、
僕の用途がすごく基本的なものだった、ということも影響してるんだと思うんですが:P

>逆にDOS窓~
う、、考えたこともなかったです。
今回DOS窓が出たのは、↑にも書いたとおりのexplorerのウィンドウを立ち上げるコマンドです。
cmd.exeをはずしたらあるいは・・・、とか?
そういえば前にos.system(“xxx.bat”)と直接実行した際にはDOS窓出てた様な気もします。たぶん、、、

あきを 2008/11/21

ユーザーに選択的な処理を行わせたかったのでDOSプロンプトを立ち上げたかったのです
pythonのos.systemだと確かにプロンプトが立ち上がるのですが
プロセスが全部とられちゃうのでMayaがフリーズしちゃうんですよね
一応プロンプトを終了すれば処理できるようになるんですけど
windowsの問題かもしれませんね

tai 2008/11/21

>あきをさん
あー、なるほど、そういうことがあるんですね。
たしかに時間かかる処理させてたりとかすると、Mayaはごっそり持っていかれますね・・・w
os.systemも同じような感じなんですかね?
んー、、、Threading使うとかで解決できたりしないですかね。
Windowsの問題だったら糸冬ですが:P

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.taikomatsu.com/2008/11/12/python-ossystem-vs-ospopen/trackback/
Listed below are links to weblogs that reference
[Python] os.system vs os.popen from memlog

Home > Python > [Python] os.system vs os.popen

Return to page top