当我使用python.exe运行时,我的一些Python代码正常工作,但如果我使用pythonw.exe则失败。
def runStuff(commandLine): outputFileName = somefile.txt outputFile = open(outputFileName, "w") try: result = subprocess.call(commandLine, shell=True, stdout=outputFile) except: print Exception thrown: , str(sys.exc_info()[1]) myThread = threading.Thread(None, target=runStuff, commandLine=[ whatever... ]) myThread.start()
我收到的消息是:
Exception thrown: [Error 6] The handle is invalid
然而,如果我不指定 stdout 参数,subprocess.call() 就可以正常启动。
我可以看到pythonw.exe可能会重定向输出本身,但我不明白为什么我无法指定新线程的stdout。