У меня есть база данных на облачном сервисе без бэкэнда, который не поддерживает Python.
Поэтому я устанавливаю связь между кодом Python и базой данных, используя файлы php.
Вставка работает нормально, так как нет ответа от php-файла на python.
Однако при получении мне нужен php-файл для вывода вывода и скрипт python для считывания этого значения эха. Как я могу это сделать?
Благодарю.
Использовать subprocess
Модуль для выполнения кода PHP из Python.
Предполагая, что ваш PHP-скрипт записывает в стандартный вывод subprocess.check_output()
будет проще всего, или вы могли бы использовать subprocess.Popen()
если вам нужно лучше контролировать дочерний процесс.
Если вы используете Python> = 3.5, вы можете использовать subprocess.run()
.
Для чтения из stdout с python вы можете использовать модуль подпроцесса
import subprocess
p = subprocess.Popen("ls",stdout=subprocess.PIPE) # in your case, "ls" change with php command
print p.communicate() # here you will get ls output
Но я не думаю, что это хорошее решение для решения вашей проблемы. Лучшим решением будет использовать php в качестве службы REST. А затем с Python использовать его как REST.
import json
import urllib2
json.load(urllib2.urlopen("htt://yourphpapplicationaddress.com"))
попробуйте использовать трубу, например:
php test.php | grep 'xxx' python text.python
вот и все, python может получить эхо-данные php с sys.argv