Я использую простую функцию w1(str), чтобы иногда останавливать программу и ждать ключа. Код ниже работает.
файл: test.py
#!/bin/env python
def w1(str):
print (str)
wait = raw_input()
return
if __name__ == '__main__':
print('started..')
w1('press a key')
print('exiting..')
Как это работает (хорошо):
ckim@stph45:~/test] test.py
started..
press a key
exiting..
Но когда я запускаю test.py | tee log
, он ничего не показывает, и если я нажимаю клавишу, он завершает печать сообщения и ждет ключа. На самом деле, проблема в том, что print(str)
не отображается на экране при запуске команды tee, и она ждала моего ключа. Как я могу сделать так, чтобы этот print(str)
отображался, даже когда я запускаю его с |tee
?
РЕДАКТИРОВАТЬ: хорошо, я узнал, что python -u
делает свое дело. Но изначально мой скрипт Python имеет #!/bin/env python
в начале скрипта, поэтому я запускаю его test.py | tee log
. Я искал в сети и обнаружил, что могу сделать:
ckim@stph45:~/test] setenv PYTHONUNBUFFERD 1
ckim@stph45:~/test] $test.py | tee log