Windows – 直接运行.py与运行python blah.py的行为有所不同

我有一个使用subprocess的Python脚本:

import subprocess print "Running stuff" subprocess.check_call(["do_stuff.bat"]) print "Stuff run" 

如果这被命名为blah.py,我运行(从命令提示符):

 python blah.py 

我将得到do_stuff.bat的输出(或者我运行的任何东西)。

如果这是运行的:

 blah.py 

然后,我不会从do_stuff.bat获得输出,只有打印语句。

到目前为止在Windows Server 2003上看到。Python版本2.5.2(由于各种原因卡在那里)。 看看相关的文件types的行动,我看到:

Python.File =“C:\ Python25 \ python.exe”“%1”%*

那么谁能解释一下这个区别?

Solutions Collecting From Web of "Windows – 直接运行.py与运行python blah.py的行为有所不同"

我有使用线程的常见问题,但我所有的代码是在Python中。 线程无法使用打印写入标准输出。 只是主线程可以做到这一点。 我用这样的东西

 import sys sys.stdout.write("this was printed by thread") 

我知道这可能不会帮你用蝙蝠文件…