06_中央气象台

作者: 过桥 | 来源:发表于2017-05-02 17:09 被阅读38次

    简述

    近期加班有点多,再加上新写的爬虫练习基本没有新内容,故停更一阵。言归正传,之前进行卫星云图数据抓取时,仅进行图片抓取,未将文件名称等内容入库存储,现进行完善。

    存档对象

    通过爬虫Python练习系列_02抓取至本地的卫星云图数据。

    样例数据

    实现方式一

    直接完善Python练习系列_02中相关代码,在循环后增加入库代码

            fileTime = time.strptime(image_name,"%Y%m%d %H_%M")
            fileTime = time.strftime('%Y-%m-%d %H:%M:%S',fileTime)
            sql="select count(id) from Space0014A where column_0='%s' and column_1='%s' and column_2='%s' " %(folder,fileTime,image_name)
            isRepeat = ms.ExecQuery(sql.encode('utf-8'))
            if isRepeat[0][0] == 0:
                sql = "insert into Space0014A values ('%s','%s','%s') " %(folder,fileTime,image_name)
                ms.ExecNonQuery(sql.encode('utf-8'))
    

    实现方式二

    编写监控程序,定时循环本地文件夹,查看所有图片文件,检查更新入库

        for rt,dirs,files in os.walk(root):
            for f in files:
                #使用find,如果没有找到子串,返回 -1
                #print(f.find('.jpg'))
                #使用index,如果没有找到子串,会直接抛出异常,substring not found
                #print(f.index('.jpg'))
                if f.find(".jpg") != -1:
                    #print(os.path.join(rt,f)) #完整文件名
                    #print(rt.split('\\')[-1]) #文件夹名
                    folder = rt.split('\\')[-1]
                    #print(f) #文件名
                    image_name = f
                    fileTime = image_name.replace(".jpg","")  # 20170502 13_00
                    fileTime = time.strptime(fileTime,"%Y%m%d %H_%M") #time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=122, tm_isdst=-1)
                    fileTime = time.strftime('%Y-%m-%d %H:%M:%S',fileTime)
                    #print(time.ctime(os.path.getmtime(os.path.join(rt,f)))) #修改时间
                    #print(time.ctime(os.path.getctime(os.path.join(rt,f)))) #创建时间
    
                    sql="select count(id) from Space0014A where column_0='%s' and column_1='%s' and column_2='%s' " %(folder,fileTime,image_name)
                    isRepeat = ms.ExecQuery(sql.encode('utf-8'))
                    if isRepeat[0][0] == 0:
                        sql = "insert into Space0014A values ('%s','%s','%s') " %(folder,fileTime,image_name)
                        ms.ExecNonQuery(sql.encode('utf-8'))
    

    总结

    本轮示例主要为完善之前代码,涉及非标准时间格式转为特定时间格式、遍历文件获取相关文件信息等内容......
    方式一、Python练习系列_02 更新
    方式二、文件遍历

    相关文章

      网友评论

        本文标题:06_中央气象台

        本文链接:https://www.haomeiwen.com/subject/tkoctxtx.html