Windows - прямой запуск .py против запуска python blah.py ведет себя иначе - PullRequest
13 голосов
/ 18 августа 2011

У меня есть сценарий 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 Ответ

1 голос
/ 19 августа 2011

У меня была общая проблема с использованием потоков, но весь мой код был на python.Потоки не могут записывать в стандартный вывод, используя печать.Просто основной поток мог сделать это.Я использовал что-то вроде этого

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

Я знаю, что, вероятно, это не поможет вам с файлом bat ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...