我有一个Python脚本,它调用了一个shell脚本。 Shell脚本捕获图像,使用时间戳命名图像,然后将图像保存到目录。当Shell脚本完成时,我想从调用Shell脚本的python脚本访问图像。

这是我的shell脚本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调用此shell脚本:

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

任何的建议都受欢迎!谢谢!

分析解答

您可以将bash脚本创建的文件的名称发送到standardout并在python脚本中捕获。这是一个类似的SO问题,我认为它将引导您朝着正确的方向发展。

正如该问题的最高答案所指出的,这将取决于您在其中进行此工作的python版本。您似乎正在使用subprocess.call。就subprocess的当前python文档而言,这是旧的API调用。现在,您可以在3.5版及更高版本中使用subprocess.run,这是调用子进程的推荐方法。

运行shell命令并捕获输出