我正在尝试构建一个程序,该程序会自动将通过运动拍摄的照片从我的USB网络摄像头发布到其他API,并且遇到了一些问题。我的直播正常工作,并且可以在所需时间拍照。我有脚本可以在此处发布照片:
on_picture_save home/pi/Documents/on_picture_save.py
(是,删除分号)
如何使脚本使用刚刚保存的文件,或者自动执行该脚本,所以我只需要执行以下操作?:
import requests
url = "https://api.emotuit.com/upload"
r = requests.post(url)
print(r.text)
所有运动保存在的目标目录是主目录/ pi /显示器,并且根据事件发生的时间将照片保存在自己的目录中,如下所示:
picture_filename %v_%Y-%m-%d-%H:%M/%q
任何想法,将不胜感激,谢谢!
基于on_picture_save文档,您可以在命令中使用%f
on_picture_save home/pi/Documents/on_picture_save.py %f
并且它应该发送带有完整路径的文件名作为参数,您可以将其作为sys.argv[1]
获得>
import sys print(sys.argv[1])
您也可以使用其他Conversion Specifiers发送其他信息。
BTW:
在snapshot_filename的文档中,您还可以看到在target_dir
中创建一个名为lastsnap.jpg]的符号链接,然后除非快照_文件名是完全是'lastsnap'所以您可以将最后一张图片作为lastsnap.jpg
EDIT:似乎您有curl命令
curl -X POST api.link.com/here -F 'files=@/path/to/file/here.jpg;type=image.jpg'
可以在http://curl.trillworks.com上转换为Python的请求
并且使用
sys.argv[1]
可能是
import sys import requests files = {'files': (sys.argv[1], open(sys.argv[1], 'rb'))} response = requests.post('http://api.link.com/here', files=files) print(response.json())
但是它无法访问您的屏幕,您也看不到它。您只能将其保存在文件中并创建其他程序(在桌面上手动运行)以读取并显示它。
我正在使用MQTT队列而不是文件。
[on_picture_save.py
正在将数据发送到队列,而家里的其他本地计算机在桌面上运行脚本,该脚本定期从队列中获取数据并显示在桌面上。