Esempio n. 1
0
    def Send_UpdataMsg(self):
        #组装消息内容
        strText = "zxcRobot(" + self.version + ") --"

        #判断是否已经发送
        bFirst = False
        strVer = myIO.getContent(self.Dir_Base + "/Data/Log/Updata.log", True)
        if (strVer != self.version):
            strText += "已启动."
            strText += "\n更新内容:\n" + self.verText
            bFirst = True
            myIO.Save_File(self.Dir_Base + "/Data/Log/Updata.log",
                           self.version)
        else:
            strText += "已重启."

        #发送所有
        msg = self.usrMMsg.OnCreatMsg()
        msg['usrName'] = "filehelper"
        msg["usrPlat"] = "wx"
        msg['msg'] = strText
        self.usrMMsg.OnHandleMsg(msg)

        msg["usrName"] = ""
        msg["groupName"] = "测试群"
        self.usrMMsg.OnHandleMsg(msg)

        if (bFirst):
            msg["groupName"] = "茶"
            self.usrMMsg.OnHandleMsg(msg)
Esempio n. 2
0
 def saveData(self, strPath = ""):
     #保存历史数据  
     if(strPath == ""): strPath = self.pathData 
     myIO.Save_File(strPath, self.dataS_Min_Now.dataS.csvHead(), True, False)
     
     #文件追加数据内容
     with open(strPath, 'a+') as f:
         for x in self.datasS_Min: 
             f.write(x.dataS.toCSVString()) 
     return True 
Esempio n. 3
0
 def saveData(self, strDir = ""):             
     #保存历史数据 
     strPath = self.dir + strDir + "History.csv"
     myIO.Save_File(strPath, self.datasS[0].csvHead(), True, False)
     
     #文件追加数据内容
     with open(strPath, 'a+') as f:
         for x in self.datasS: 
             f.write(x.toCSVString()) 
             
     #保存当天分钟数据集
     self.datasS_M.saveData()
Esempio n. 4
0
 def __init__(self, userID, usrName, usrNameNick, dirLog = ""): 
     self.usrName = usrName          #归属用户
     self.usrNameNick = usrNameNick  #归属用户昵称
     self.userID = userID            #归属用户ID
     self.usrID_sys = userID         #归属用户ID_sys
     self.usrMsgs = []               #消息集
     self.pathLog = ""
     if(dirLog != ""):
         nameFile = myData.iif(self.usrNameNick == '', self.usrName, self.usrNameNick)
         self.pathLog = dirLog + nameFile + ".csv"
         if(os.path.exists(self.pathLog) == False):
             myIO.Save_File(self.pathLog, "时间,用户名,消息,消息类型", False, True) 
Esempio n. 5
0
    def saveData_stream(self, file = "", pData = None):
        pTime = pData.getTime()
        if((pTime - self.datasS_M.dtNow).total_seconds() < 1): 
            return False    #未时间步进 

        #文件头写入 
        if(file == ""): file = self.dir + self.fileName + ".csv"
        if(len(self.datasS_M.datasS_Min) <= 1): 
            myIO.Save_File(file, pData.csvHead(), True, False)

        #文件追加数据内容
        if(pData == None): pData = self.data
        with open(file, 'a+') as f:
            f.write(pData.toCSVString())    
        self.datasS_M.dtNow = pTime     #更新时间
Esempio n. 6
0
    def output(self, lstReturn):
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        if (lstReturn != None and len(lstReturn) > 1):
            datas = []
            for x in lstReturn:
                datas.append(x.toDict())
            pMsg['datas'] = datas
            pMsg['result'] = True

            strJson = myData_Json.Trans_ToJson_str(pMsg)
            path = self.Dir_Swaps + "/Quote_" + myData_Trans.Tran_ToDatetime_str(
                None, "%Y-%m-%d-%H-%M-%S") + ".json"
            myIO.Save_File(path, strJson, isUtf=True, isNoBoom=True)
            return True
        return False
Esempio n. 7
0
    def SwapData_OutFile(self, tagName="", dirDest=""):
        dataOut = copy.copy(self.dataOut)
        self.dataOut = []
        if (len(dataOut) < 1): return False
        jsonData = myData_Json.Json_Object(dataOut)

        dirOut = myData.iif(dirDest != "", dirDest, self.dirSwap_out) + "/"
        if (tagName == ""): tagName = self.tagName
        if (tagName == "" and dirOut == ""): return False

        fileName = tagName + myData_Trans.Tran_ToDatetime_str(
            None, "_%Y_%m_%d_%H_%M_%S") + ".json"
        content = jsonData.ToString(autoFormat=False).replace("\\", "/")
        myIO.Save_File(dirOut + fileName, content, True, False)
        #myDebug.Print("DataSwap Out IOFiles::" + dirOut + fileName)
        myDebug.Print("DataSwap Out IOFiles::" + fileName)
        return True
Esempio n. 8
0
    def Save_as_csv(self, path, rows, isUtf = True):   
        #保存该csv文件,有同名文件时直接覆盖
        strEnt = myData.iif(isUtf, "\r\n", "\n")

        # 写入字段
        strLines = "ID(int)" 
        for x in self.fields:
            strLines += "," + myData.iif(x in self.fields_index, "**", "") + x + "(" + self.fields[x]['type'] + ")"
        strLines += ",isDel(bool)" 

        # 写入字段别名
        if(self.params.get("hasAliaName", False)):
            strLines += strEnt + "ID" 
            for x in self.fields:
                strLines += "," + self.fields[x]['nameAlias']
            strLines += ",isDel(bool)" 

        #循环所有格子组装数据 
        for x in rows:
            strLines += strEnt + self._Trans_ToStr(x)
        myIO.Save_File(path, strLines, isUtf, False)
        return True     #保存数据
Esempio n. 9
0
    def Save_csv_append(self,
                        file,
                        pValues=[],
                        isUtf=False,
                        col_start=0,
                        symbol=",",
                        row_end=-1,
                        col_end=-1,
                        bSave_AsStr=True):
        # 写入字段
        strLines = ""
        nRows = self._Rows(row_end)
        nCols = self._Cloumns(col_end)
        if (nRows == 0):
            for j in range(col_start, nCols):
                if (strLines == ""):
                    strLines += self.dataField[j]
                else:
                    strLines += symbol + self.dataField[j]
            myIO.Save_File(file, strLines, isUtf, True)

        #组装行数据
        strLine = ""
        for j in range(col_start, nCols):
            strVaulue = self.Trans_Value_str(pValues[j], bSave_AsStr)
            if (strLine == ""):
                strLine += strVaulue
            else:
                strLine += symbol + strVaulue

        #文件追加数据内容
        if (isUtf):
            with open(file, 'a+', encoding="utf-8") as f:
                f.write("\n" + strLine)
        else:
            with open(file, 'a+') as f:
                f.write("\n" + strLine)
        return True
Esempio n. 10
0
    def Save_csv(self,
                 strDir,
                 fileName,
                 isUtf=False,
                 row_start=0,
                 col_start=0,
                 symbol=",",
                 row_end=-1,
                 col_end=-1,
                 bSave_AsStr=True):
        nCols = self._Cloumns(col_end)
        nRows = self._Rows(row_end)
        if (nRows > 0):
            nCols = myData.iif(col_end < 0, len(self.dataMat[0]), col_end)

        # 写入字段
        strLines = ""
        for j in range(col_start, nCols):
            if (strLines == ""):
                strLines += self.dataField[j]
            else:
                strLines += symbol + self.dataField[j]

        #循环所有格子组装数据
        strEnt = myData.iif(isUtf, "\r\n", "\n")
        for i in range(row_start, nRows):
            strLine = ""
            pValues = self.dataMat[i]
            for j in range(col_start, nCols):
                strVaulue = self.Trans_Value_str(pValues[j], bSave_AsStr)
                strLine += symbol + strVaulue
            strLines += strEnt + strLine[len(symbol):]

        #保存该csv文件,有同名文件时直接覆盖
        strPath = strDir + "/" + fileName + ".csv"
        myIO.Save_File(strPath, strLines, isUtf, False)
        return True  #保存数据
Esempio n. 11
0
    def Save_DB(self, isAppend=False, isUtf=True):
        #保存该csv文件,有同名文件时直接覆盖
        strPath = self.dir + "/" + self.nameDB + ".csv"
        strEnt = myData.iif(isUtf, "\r\n", "\n")

        # 写入字段
        nCols = self._FieldsCount() + 1
        nRows = self._RowsCount()
        strLines = "ID(int)"
        for x in self.fields:
            strLines += "," + myData.iif(
                x in self.fields_index, "**",
                "") + x + "(" + self.fields[x]['type'] + ")"
        strLines += ",isDel(bool)"

        # 写入字段别名
        if (self.params.get("hasAliaName", False)):
            strLines += strEnt
            for x in self.fields:
                strLines += "," + self.fields[x]['nameAlias']
            strLines += ",isDel(bool)"

        #循环所有格子组装数据
        if (isAppend == False or self._RowsCount() == 1):
            for x in self.rows:
                strLines += strEnt + self._Trans_ToStr(self.rows[x])
            myIO.Save_File(strPath, strLines, isUtf, False)
        else:
            #文件追加数据内容
            strLine = self.To_str(self.rows[list(self.rows.keys())[-1]])
            if (isUtf):
                with open(strPath, 'a+', encoding="utf-8") as f:
                    f.write("\n" + strLine)
            else:
                with open(strPath, 'a+') as f:
                    f.write("\n" + strLine)
        return True  #保存数据
Esempio n. 12
0
    def Logion(self, bSave=True, bSave_HeadImg=False):
        #二维码路径组装
        pathPic = self.dirPic + "QR.png"
        patStatusStorage = self.dirData + 'zxcWeixin.pkl'

        #登录微信网页版(二维码扫码)
        myDebug.Print('登陆验证中...')
        itchat.auto_login(hotReload=True,
                          enableCmdQR=False,
                          statusStorageDir=patStatusStorage,
                          picDir=pathPic,
                          qrCallback=None,
                          loginCallback=self._Logioned,
                          exitCallback=self._LogionOuted)

        #获取所有好友信息
        #friends = itchat.get_friends()
        friends = itchat.get_friends(update=True)[0:]  # 核心:得到frieds列表集,内含很多信息
        groups = itchat.get_chatrooms(update=True)

        #获取自己的UserName
        self.usrFriends = friends
        self.usrName = friends[0]['UserName']
        self.usrName_Alias = friends[0]['NickName']
        gol._Set_Value('zxcWx_usrName', self.usrName)
        gol._Set_Value('zxcWx_usrName_Alias', self.usrName_Alias)
        myDebug.Print("    --授权微信用户为:" + self.usrName_Alias + self.usrName)
        if (True):
            #记录为文件格式,便于其他识别
            dictUsr = {
                'UserName': self.usrName,
                'NickName': self.usrName_Alias
            }
            myIO.Save_File(self.dirData + 'zxcWeixin.cache', str(dictUsr),
                           True, True)

        #更新用户信息(回复消息处理工厂对象类)
        self.wxReply._Init(self.usrName, self.usrName_Alias)

        #消息发送测试
        #self.Send_Msg("", "茶叶一主号", "测试消息1", "SHARING", 0)
        #self.Send_Msg("", "测试", "测试消息22", "TEXT", 1)
        #self.Send_Msg("", "股票行情监测群", "测试消息33", "TEXT", 1)
        #self.Send_Msg("", "filehelper", "/root/Public/myPrjs/zxcProj/src/Zxc.Python/zxcPy.Weixin/Data/Pic/Temps/191008-203316.png", "Image", 1)

        #将friends列表存下来,看看内容
        if (bSave):
            #创建文件夹用于装载所有好友头像
            self.dirPic_Head = self.dirPic + "Head/" + self.usrName_Alias + "/"
            myIO.mkdir(self.dirPic_Head, False)

            #创建主信息文件
            self.dirFriends = self.dirData + "Firends" + "/"
            myIO.mkdir(self.dirFriends, False)
            w = open(self.dirFriends + self.usrName_Alias + "_friends",
                     'a',
                     encoding='utf-8',
                     errors='ignore')

            #循环写入所有
            num = 0
            for user in friends:
                w.write(str(user))

                #用户图像
                if (bSave_HeadImg):
                    img = itchat.get_head_img(userName=user["UserName"])
                    fileImage = open(
                        self.dirPic_Head + "/" + str(num) + ".jpg", 'wb')
                    fileImage.write(img)
                    fileImage.close()
                    num += 1

            #得到user目录下的所有文件,即各个好友头像
            pics = os.listdir(self.dirPic_Head)
            numPic = len(pics)
            myDebug.Print("    --微信好友图像数:" + str(numPic) + "\n")
Esempio n. 13
0
 def saveMD(self, path):
     self.upData_All()
     strContent = self.getContent()
     myIO.Save_File(path, strContent, True, True)
Esempio n. 14
0
def transData(dataType):
    dir = "D:\\myDevEvn\\UCMLCoreYunUMS7.6.1.8\\Standard\\Html\\BPObject\\sln_12002\\BusinessUnit\\我的测试\\data\\"
    pTable = myIO_xlsx.DtTable()
    pTable.Load_csv(dir + "dcjd_2020_08_20_pm.csv")

    indFields = pTable.Get_Index_Fields(pTable.dataField)
    ind_data = indFields[dataType]
    ind_name = indFields['"时间"']
    ind_lng = indFields['"经度"']
    ind_lat = indFields['"纬度"']

    # 循环提取数据
    maxValue = -999999
    lstRows = []
    rows = pTable._Rows()
    for i in range(0, rows):
        row = pTable[i]
        value = myData_Trans.To_Float(row[ind_data].replace('"', ''))
        if (value > maxValue):
            maxValue = value

        name = row[ind_name].replace('"', '')
        name = ""
        lng = myData_Trans.To_Float(row[ind_lng].replace('"', ''))
        lat = myData_Trans.To_Float(row[ind_lat].replace('"', ''))
        jsonInfo = {"name": name, "value": [lng, lat, value]}
        lstRows.append(jsonInfo)

    # 插值加密
    dataAdds = []
    deltaDic = 1.0 / 111000 * 5
    for i in range(0, rows - 1):
        value0 = lstRows[i]['value']
        value1 = lstRows[i + 1]['value']
        name = lstRows[i]['name']
        _deltaDic, linePoints = myData_Geometry.breakLine(
            value0[0], value0[1], value1[0], value1[1], deltaDic)
        if (len(linePoints) > 0):
            #计算插值
            dicT = myData_Geometry.distance(value0[0], value0[1], value1[0],
                                            value1[1])
            valueT = (value1[2] - value0[2]) / 2
            x0 = value0[0]
            y0 = value0[1]

            numPoint = len(linePoints)
            for x in range(0, numPoint, 2):
                x1 = linePoints[x]
                y1 = linePoints[x + 1]
                dicTemp = myData_Geometry.distance(x0, y0, x1, y1)
                valueTemp = value0[2] + valueT * (dicTemp / dicT)
                jsonInfo = {"name": name, "value": [x1, y1, valueTemp]}
                dataAdds.append({"index": i, "jsonInfo": jsonInfo})

    # 添加插值
    for i in range(len(dataAdds) - 1, -1, -1):
        dataAdd = dataAdds[i]
        jsonInfo = dataAdd["jsonInfo"]
        ind = dataAdd["index"]
        lstRows.insert(ind, jsonInfo)
    dataInfo = [lstRows, maxValue]
    strData = str(dataInfo).replace("'", '"')

    path = dir + dataType.replace('"', '') + ".json"
    myIO.Save_File(path, strData, True, False)
    pass