В Ubuntu Desktop (Unity), когда script помечен как исполняемый файл, а затем я нажимаю на файл, я получаю всплывающее окно, подобное изображению на изображении:
pyscript.py - это исполняемый файл Python script с помощью shebang: #!/usr/bin/python
где /usr/bin/python - это путь к интерпретатору Python. Поскольку я не запускаю этот процесс в терминальном окне, потому что я просто нажал "Запустить", я думал, что вначале не было бы стандартных потоков для процесса; Когда я экспериментировал больше, я понял, что доступны все стандартные потоки:
pyscript.py
#!/usr/bin/python3
import sys, os
f = file=open("output.txt", "w")
print(sys.stdout, sys.stdin, sys.stderr, sep='\n', file=f)
output.txt
<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
<_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
Что вызывает вопрос, нет ли оконного окна в фоновом режиме, к чему подключены sys.stdout, stdin и stderr? Технически, запуск Python без консольного окна под Windows с .pyw Я получаю тот же результат.
Взгляните на этот вопрос: pythonw.exe или python.exe?
В одном из ответов говорится следующее:
Стандартные потоки
sys.stdin
,sys.stdout
иsys.stderr
НЕ доступны.
То, что стандартные потоки недоступны, не кажется истинным, когда я тестирую это с помощью Python 2.7 в Windows 10, щелкнув файл .pyw, хотя в реестре Windows файлы .pyw связаны с Python 2. X, который запускает pythonw.exe на моей машине.
Этот вопрос - беспорядок Unix/Windows!