[转载]使用python上传图片到 yeelink

#/bin/env python
# -*-coding:utf=8 -*-
import os,time,subprocess,shlex
import urllib2
def upload_yeelink(image_name, log_file):
    #自己设备的 upload url
    url = ‘http://api.yeelink.net/v1.0/device/XXX/sensor/XXXX/photos‘
    length = os.path.getsize(image_name)
    image_data = open(image_name, ‘rb‘)
    request = urllib2.Request(url, data=image_data)
    request.add_header(‘U-ApiKey‘, ‘14765d*********880398486d08f9c‘)
    request.add_header(‘Content-Length‘, ‘%d‘ % length)
    res = urllib2.urlopen(request).read().strip()
    log_file.write(res + ‘\n‘)

if __name__ == ‘__main__‘:
    images_path = os.path.join(os.getcwd(), ‘image‘)
    log = open(os.path.join(os.getcwd(), ‘output.log‘),‘w+‘)
    if not os.path.exists(images_path):
        os.makedirs(images_path)
    com_line = ‘fswebcam -d /dev/video0 -r 320x240 --bottom-banner --title "%s" --no-timestamp %s/%s.jpg‘
    while True:
        time_now = time.strftime(‘%Y-%m-%d-%H-%M-%S‘)
        com_line_now = com_line % (time_now, images_path, time_now)
        subprocess.call(shlex.split(com_line_now), stdout=log, stderr=log)
        upload_yeelink(‘%s/%s.jpg‘ % (images_path, time_now), log)
        print com_line_now
        time.sleep(11)

代码来自于 :https://github.com/coolbit-in/yeelink_photos_upload

时间: 2025-01-04 18:52:15

[转载]使用python上传图片到 yeelink的相关文章

【转载】Python 中的 if __name__ == '__main__' 该如何理解

转自 旷世的忧伤 http://blog.konghy.cn/2017/04/24/python-entry-program/ 程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始.同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口. 而 Py

【转载】python实例手册

今天西爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德

转载:python的中文编码处理(一)

以下内容转载自: http://in355hz.iteye.com/blog/1860787 最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息. 很快,我就遇到了异常: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal notin range(128) 为了解决问题,我花时间去研究了一下 Pyth

【转载】python发送邮件实例

本文转自:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html 这几天要用python发送邮件,上网找到这篇文章感觉蛮全面的,故转载收藏之. 1. 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header send

【转载】Python中的正则表达式教程

本文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 正则表达式经常被用到,而自己总是记不全,转载一份完整的以备不时之需. 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现

【转载】Python中如何高效实现两个字典合并,三种方法比较。

本文转载自:http://www.pythoner.com/13.html Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为: 方法一: dictMerged1 = dict( dict1.items() + dict2.items() ) 然而,该方法合并时所用时间较长,效率更高的代码为: 方法二: dictMerged2 = dict( dict1,

【转载】 Python 方法参数 * 和 **

Python的函数定义中有两种特殊的情况,即出现*,**的形式. 如:def myfun1(username, *keys)或def myfun2(username, **keys)等. 他们与函数有关,在函数被调用时和函数声明时有着不同的行为.此处*号不代表C/C++的指针. 其中 * 表示的是元祖或是列表,而 ** 则表示字典 第一种方式: 1 import httplib 2 def check_web_server(host,port,path): 3 h = httplib.HTTPC

【转载】 python修饰符@

@符号在python语言中具有特殊含义,用来作为修饰符使用, @修饰符有点像函数指针,python解释器发现执行的时候如果碰到@修饰的函数,首先就解析它,找到它对应的函数进行调用,并且会把@修饰下面一行的函数作为一个函数指针传入它对应的函数. 参考下面的代码: 1 def spamrun(fn): 2 def sayspam(*args): 3 a,b =args 4 c,d = a*5, b*5 5 print c,d 6 return fn(c,d) 7 print 'note!' 8 re

【转载】 Python动态生成变量

用Python循环创建多个变量, 如创建 a1=   .a2=   .a3=   .a4=   .a5= 可以通过python的内置函数locals 来完成 locals是python的内置函数,他可以以字典的方式去访问局部和全局变量.python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量.每个模块,每个函数都有自己的名字空间,记录着变量,常量,类的命名和值. 就像JS一样,当python在使用变量时,会按照下面的步骤去搜索:1.函数或类的局部变量