В моем скрипте Python я перенаправить стандартный вывод в файл:
sys.stdout = open("/home/pi/log.txt", "w")
print "test"
Это работает нормально, но когда я запускаю скрипт python из PHP, файл создается правильно, но в него не добавляются строки. Log.txt просто остается пустым!
<?php
exec('sudo -u pi python /home/pi/partyknipse/admin/upload.py')
?>
Буду признателен за любое предложение.
Интересно, что на моем ПК с Windows я получаю обратное. Python не печатает тестовое задание строка, но при вызове из PHP это делает! Возможно, это наши ОС или версии, так как я использую Python 3 и PHP 5.4. Тем не менее, в обоих случаях .py скрипт ниже работает в настройке stdout
вернуться в исходное состояние. Рассмотрим это с вашей стороны:
saveout = sys.stdout # SAVE TO RETURN BACK
sys.stdout = open("log.txt", "w")
print("test")
sys.stdout = saveout # RESET TO NORMAL STATE
Других решений пока нет …