2013-09-06 7 views
0

Я написал сценарий, который отлично работает в командной строке, но отображает только последнюю строку, если я дважды щелкнул значок script.py на своем рабочем столе.Python-скрипт отображает вывод в окне команд, но ничего не отображается в Windows

Функция в сценарии работает отлично, но как только она находит совпадение, она должна отображать вывод на экране. В конце у меня есть оператор os.pause, и THAT отображается, когда скрипт завершен, но на экране ничего больше не отображается.

Я выполняю его с помощью pythonw.exe. Что еще я должен проверить?

спасибо.

+0

Не существует 'os.pause'. Возможно, вы имели в виду 'os.system (" pause ")'? – tdelaney

+0

Да, вот что я имел в виду, я просто слишком устал, чтобы найти код. Виноват. – Tensigh

ответ

1

Я использовал сценарий, как и раньше, и это, казалось, хорошо мне

print("Hello world") 
input("Press return to exit") 
2

pythonw подавляет окно консоли, которая создается, когда сценарий питона выполняется. Он предназначен для программ, которые открывают свой собственный графический интерфейс. Без pythonw приложение python gui будет иметь свои обычные окна и дополнительную консоль, плавающую вокруг. Я не уверен, что pythonw делает для вашего stdout, но os.isatty() возвращает False, и я полагаю, что stdout/err просто сбрасываются в забвение. Если вы запустите команду DOS, например, os.system("pause"), Windows создаст новое консольное окно только для этой команды. Это то, что вы видите на экране.

Если вы хотите увидеть свой вывод скрипта, вы должны либо запустить с python.exe, либо добавить приглашение ввода в конце скрипта, как предложено @GaryWalker, или использовать набор инструментов gui, например tcl/tk, Qt или WxPython.

+0

Рад, что вы поймали факт, что я не упомянул python.exe вместо pythonw.exe +1 –

+0

Спасибо. Когда я использовал python.exe вместо pythonw.exe, я впервые получил ошибку (говоря, что файл .dll отсутствует), но я просто попробовал, и теперь это сработало. Странный. Спасибо за совет. – Tensigh