# -*- coding: utf-8 -*- #!/usr/bin/env python """ 引入基本库 os: 操作系统模块 sys: 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。 """ import os import sys """ 设置正确路径 os.path.join(route1,route2,route3...): 链接字符串变为路径-> route1/route2/route3/... os.path.abspath(file): 获得当前文件的绝对路径 os.path.split(route): 按照路径将文件名和路径分割开 [0]-> 第一个文件名 os.path.realpath(__file__): 获得__file__的标准路径 __file__ -> 当前文件的完整绝对路径 sys.path.insert(0, route)这样新添加的目录会优先于其他目录被import检查 """ PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..') sys.path.insert(0, PROJECT_ROOT) # 引入项目环境和日志 from script.base import init_env, get_logger init_env(interactive=True) logger = get_logger(__name__) from apps.web.device.models import Device class DevUtils(object): # 通过logicalCode解注册 @classmethod def un_reg_by_l(cls, l): d = Device.get_dev_by_logicalCode(l) assert d is not None, 'cache is not found, logicalCode=%s' % l status = Device.un_register(d) assert status, 'device un_register failed' Device.invalid_device_cache(d['devNo']) logger.info('logicalCode=%s has been un_registered.' % l) # 通过imei解注册 @classmethod def un_reg_by_i(cls, i): d = Device.get_dev(i) assert d is not None, 'cache is not found, devNo=%s' % i status = Device.un_register(d) assert status, 'device un_register failed' Device.invalid_device_cache(d['devNo']) logger.info('devNo=%s has been un_registered.' % i) # 通过logicalCode列表解注册 @classmethod def un_reg_by_ls(cls, arr): for _ in arr: try: d = Device.get_dev_by_logicalCode(_) Device.un_register(d) Device.invalid_device_cache(d['devNo']) except Exception, e: logger.error('device un_register failed. e=%s' % e) logger.info('logicalCode list=%s has been un_registered.' % arr) # 通过imei列表解注册 @classmethod def un_reg_by_is(cls, arr): for _ in arr: try: d = Device.get_dev(_) Device.un_register(d) Device.invalid_device_cache(d['devNo']) except Exception, e: logger.error('device un_register failed. e=%s' % e) logger.info('devNo list=%s has been un_registered.' % arr) if __name__ == '__main__': # 使用的时候用类调用 pass