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

时间:2011-08-18 09:08:13

标签: python windows 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的输出,只有print语句。

到目前为止在Windows Server 2003上看到过.Python版本2.5.2(由于各种原因卡在那里)。 查看关联的文件类型操作,我看到:

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

那么有人可以解释这个区别吗?

1 个答案:

答案 0 :(得分:1)

我有使用线程的常见问题,但我的所有代码都在python中。线程无法使用print写入标准输出。只是主线程可以做到这一点。我像这样使用了somethnig

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

我知道可能它不会帮助你使用bat文件......