python.exeを使用して実行すると正しく機能するPythonコードがいくつかありますが、pythonw.exeを使用すると失敗します。
def runStuff(commandLine): outputFileName ='somefile.txt' outputFile = open(outputFileName、 "w") 試す: 結果=subprocess.call(commandLine、shell = True、stdout = outputFile) それ外: print'例外がスローされました:'、str(sys.exc_info()[1]) myThread = threading.Thread(None、target = runStuff、commandLine = ['whatever ...']) myThread.start()
私が受け取るメッセージは次のとおりです。
スローされた例外:[エラー6]ハンドルが無効です
ただし、「stdout」パラメーターを指定しない場合、subprocess.call()は正常に起動します。
pythonw.exeが出力自体をリダイレクトしている可能性があることはわかりますが、新しいスレッドにstdoutを指定できない理由がわかりません。