これが重複していないことを願っています。
subprocess.Popen()
を使用して、別のコンソールでスクリプトを開こうとしています。 Shell=True
パラメーターを設定しようとしましたが、うまくいきませんでした。
32ビットPython 2.7を64ビットWindows 7で使用しています。
_from subprocess import *
c = 'dir' #Windows
handle = Popen(c, stdin=PIPE, stderr=PIPE, stdout=PIPE, Shell=True)
print handle.stdout.read()
handle.flush()
_
_Shell=True
_を使用しない場合、Popen()
にコマンド文字列ではなくリストを指定する必要があります。例:
_c = ['ls', '-l'] #Linux
_
シェルなしで開きます。
_handle = Popen(c, stdin=PIPE, stderr=PIPE, stdout=PIPE)
print handle.stdout.read()
handle.flush()
_
これは、Pythonからサブプロセスを呼び出すことができる最も手動で柔軟な方法です。出力だけが必要な場合は、次を実行します。
_from subproccess import check_output
print check_output('dir')
_
_import os
os.system("start cmd /K dir") #/K remains the window, /C executes and dies (popup)
_
別のコンソールで開くには、次のようにします(Win7でテスト済み/ Python 3):
from subprocess import Popen, CREATE_NEW_CONSOLE
Popen('cmd', creationflags=CREATE_NEW_CONSOLE)
input('Enter to exit from Python script...')
Win7/python 2.7でcreationflags = CREATE_NEW_CONSOLEを試しましたが、これも機能しました。