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

Dan*_*ple 13 python windows subprocess

我有一个使用子进程的python脚本:

import subprocess
print "Running stuff"
subprocess.check_call(["do_stuff.bat"])
print "Stuff run"
Run Code Online (Sandbox Code Playgroud)

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

python blah.py
Run Code Online (Sandbox Code Playgroud)

我将从do_stuff.bat(或我运行的任何东西)获得输出.

如果运行如下:

blah.py
Run Code Online (Sandbox Code Playgroud)

然后我没有得到do_stuff.bat的输出,只有print语句.

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

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

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

Jaz*_*ell 1

我在使用线程时遇到了常见问题,但我所有的代码都是用 python 编写的。线程无法使用 print 写入标准输出。只需主线程就可以做到这一点。我用过这样的东西

import sys
sys.stdout.write("this was printed by thread")
Run Code Online (Sandbox Code Playgroud)

我知道它可能不会帮助你处理bat文件......

  • *线程不能使用 print 写入标准输出* 你为什么这么认为? (2认同)