Как получить имя файла и файл, созданный с помощью сценария оболочки, который был вызван из сценария Python? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть сценарий Python, который вызывает сценарий оболочки. Сценарий оболочки захватывает изображение, присваивает ему имя, используя временную метку, а затем сохраняет изображение в каталоге. Когда сценарий оболочки завершится, я хотел бы получить доступ к изображению из сценария python, который называл сценарий оболочки.

Вот мой сценарий оболочки capture.sh:

DATE=$(date +"%Y-%m-%d_%H%M%S")
fswebcam -r 1280x720 --no-banner /home/pi/app/images/$DATE.jpg
exit 0

Этот сценарий оболочкивызывается с capture.py:

import os
import subprocess

# call script
subprocess.call(['/home/pi/app/capture.sh'])

#?how to retrieve and process image: /home/pi/app/images/$DATE.jpg

Любой совет будет приветствоваться! Спасибо!

1 Ответ

1 голос
/ 21 октября 2019

Вы можете отправить имя файла, созданного сценарием bash, в standardout и записать его в сценарий python. Вот аналогичный вопрос SO, который, я думаю, приведет вас в правильном направлении.

Как показывает главный ответ на этот вопрос, это будет зависеть от того, в какой версии Python вы выполняете эту работу. похоже, что вы используете subprocess.call. В терминах текущих документов по Python для subprocess, это старый вызов API. Теперь вы можете использовать subprocess.run в версиях 3.5 и новее, что является рекомендуемым способом вызова дочерних процессов.

Запуск команды оболочки и получение вывода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...