#!/usr/bin/python # -*- coding: GBK -*- #×÷Õß : eggxp import os import struct import string import math import datetime import subprocess #Ö´ÐÐcmdÖ¸Áî def RunCmd(curCmd): pipe = subprocess.Popen(['cmd', ""], shell = False, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE) pipe.stdin.write('%s\n'%curCmd) pipe.stdin.close() retStr = pipe.stdout.read() retStr += pipe.stderr.read() print retStr return retStr #È¡µÃ´úÂëÖÐÕæÊµµÄ×Ö·û´®£¨Èç²ÎÊýsrcStrÊÇ'\n',»áµÃµ½»Ø³µ·û£© def GetCodeStr(srcStr): desStr = srcStr.replace("'", "\\'") cmd = "desStr='" + desStr + "'" exec(cmd) return desStr #pythonдÎļþ: # f = file('c:\\fuck.txt', 'a') # f.write(mapObsData) #µÈ´ýÊäÈë: raw_input() #´´½¨Socket #s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP) #s.bind(('192.168.0.81', 6112)) #s.listen(1) #»ñµÃ×ÓĿ¼: #os.path.abspath #µÈ´ýÊäÈë: #raw_input() #µÃµ½±¾Ä¿Â¼: #os.getcwd() #µÃµ½²ÎÊý: #os.sys.argv #µÃµ½python·¾¶ #os.sys.executable #ÔËÐÐÍⲿÎļþ/½áÊøÍⲿÎļþ #processID = os.spawnl(os.P_NOWAIT, pythonPath, '-p', os.path.join(curPath, 'test.py')) #win32api.TerminateProcess(processID, 0) #pythonµÄ¶ÁÈ¡/дÈë¿â #------------------------¶ÁÈ¡ def ReadBYTE(buf, pos): curValue = struct.unpack_from('B', buf, pos) pos += 1 return curValue[0], pos def ReadWORD(buf, pos): curValue = struct.unpack_from('H', buf, pos) pos += 2 return curValue[0], pos def ReadDWORD(buf, pos): curValue = struct.unpack_from('I', buf, pos) pos += 4 return curValue[0], pos def ReadFloat(buf, pos): curValue = struct.unpack_from('f', buf, pos) pos += 4 return curValue[0], pos def ReadDouble(buf, pos): curValue = struct.unpack_from('d', buf, pos) pos += 8 return curValue[0], pos def ReadString(buf, pos, _len): curValue = struct.unpack_from('%ds'%_len, buf, pos) pos += _len return curValue[0], pos #----------------------дÈë def WriteBYTE(buf, value): buf += struct.pack('B', value) return buf def WriteWORD(buf, value): buf += struct.pack('H', value) return buf def WriteDWORD(buf, value): buf += struct.pack('I', value) return buf def WriteFloat(buf, value): buf += struct.pack('f', value) return buf def WriteDouble(buf, value): buf += struct.pack('d', value) return buf def WriteString(buf, len, value): buf += struct.pack('%ds'%len, value) return buf def GetDistance(srcX, srcY, destX, destY): return math.sqrt(pow(srcX - destX, 2) + pow(srcY - destY, 2)) def MovePos(srcX, srcY, destX, destY, curMoveDist): if curMoveDist == 0: return srcX, srcY totalDist = GetDistance(srcX, srcY, destX, destY) if totalDist == 0: return srcX, srcY resultX = curMoveDist / float(totalDist) * (destX - srcX) + srcX resultY = curMoveDist / float(totalDist) * (destY - srcY) + srcY return resultX, resultY ##²âÊÔ´úÂë: #strs = 'ÃÀÏãÊÇÖí' #buf = '' #buf = WriteString(buf, len(strs), strs) #value, pos = ReadString(buf, 0, len(strs)) #print value #»ñµÃµ±Ç°ÏµÍ³Ê±¼ä def GetCurrentDataTimeStr(): curTime = datetime.datetime.today() curTimeStr = str(curTime) curTimeStr = curTimeStr.split(".")[0] return curTimeStr #»ñµÃϵͳʱ¼ä(²ÎÊý -> ʱ¼äÁбí) def GetDateTimeByStr(timeStr): timeStr = timeStr.split(".")[0] return datetime.datetime.strptime(timeStr, "%Y-%m-%d %H:%M:%S") #×Ö·û´®×ª»»ÎªÕûÐÍ, Èç¹û²»ÄÜת»», ·µ»ØÄ¬ÈÏÖµ def ToIntDef(input, defValue = 0): try: result = int(input) return result except ValueError: return defValue #16½øÖÆÑÕɫת»» #"#FFFFFF"--"255,255,255" def HcToSc(h): h="0x"+h[1:7] red=string.atoi(h[:2]+h[2:4], base=16) green=string.atoi(h[:2]+h[4:6], base=16) blue=string.atoi(h[:2]+h[6:8], base=16) cStr=str(red)+","+str(green)+","+str(blue) return cStr #"255,255,255"--"#FFFFFF" def ScToHc(s): red=hex(string.atoi(s.split(",")[0]))[2:] green=hex(string.atoi(s.split(",")[1]))[2:] blue=hex(string.atoi(s.split(",")[2]))[2:] hStr="#"+str(red+green+blue) return hStr #16½øÖÆ×ª»» #"0xFFFFFF"--"255,255,255" def HdToSd(h): red=string.atoi(h[0:2]+h[2:4], base=16) green=string.atoi(h[0:2]+h[4:6], base=16) blue=string.atoi(h[0:2]+h[6:8], base=16) cStr=str(red)+","+str(green)+","+str(blue) return cStr #"255,255,255"--"0xFFFFFF" def SdToHd(s): red=hex(string.atoi(s.split(",")[0]))[2:] green=hex(string.atoi(s.split(",")[1]))[2:] blue=hex(string.atoi(s.split(",")[2]))[2:] hStr="0x"+str(red+green+blue) return hStr #Ìáʾ³ýÁã´íÎóµÄEVAL def SafeEval(value): try: return eval(value) except ZeroDivisionError: return "Division is Zero" def GetPercent(value1, value2): if value2 == 0: return 0 return int(float(value1) / float(value2) * 100) ##Éú³ÉÖ¸¶¨Îļþ£¨Èçpar£ºr'E:\¿ª·¢°æ±¾\Data\logo\formName1.log'£© #def MakeAppointFile(par): # dir = os.path.dirname(par) # »ñµÃÎļþĿ¼ # os.makedirs(dir) # ´´½¨¶à¼¶Ä¿Â¼ # file = open(os.path.basename(par),'w') # file.close() # ##ÔÚÖ¸¶¨Ä¿Â¼¸ù¾Ýµ±Ç°Ê±¼äÉú³ÉÐÂĿ¼£¨Èçpar£ºr'E:\¿ª·¢°æ±¾\Data\logo'£© #def MakeCurTimeDir(par): # if not os.path.exists(par): # ´«½øÀ´µÄĿ¼²»´æÔÚ # return # path=par+'\\'+str(datetime.datetime.today()).split()[0] # if not os.path.exists(path): # Îļþ¼ÐÊÇ·ñ´æÔÚ£¬²»´æÔÚÔò´´½¨ # os.mkdir(path) # ´´½¨Îļþ¼Ð #Éú³ÉÖ¸¶¨Ä¿Â¼£¨Èçpar£ºr'E:\¿ª·¢°æ±¾\Data\logo'£© def MakeAppointDir(par): if not isinstance(par,str): return pathList=par.split('\\') path=pathList[0] for i in range(1,len(pathList)): path+='\\'+pathList[i] if not os.path.exists(path): # Îļþ¼ÐÊÇ·ñ´æÔÚ£¬²»´æÔÚÔò´´½¨ os.mkdir(path) # ´´½¨Îļþ¼Ð #Éú³ÉÖ¸¶¨Îļþ£¨Èçpar£ºr'E:\¿ª·¢°æ±¾\Data\logo\formName1.log'£© def MakeAppointFile(par): if not isinstance(par,str): return pathList=par.split('\\') path=pathList[0] for i in range(1,len(pathList)): path+='\\'+pathList[i] if i==len(pathList)-1: file=open(path,'w') file.close() else: if not os.path.exists(path): # Îļþ¼ÐÊÇ·ñ´æÔÚ£¬²»´æÔÚÔò´´½¨ os.mkdir(path) # ´´½¨Îļþ¼Ð #ÔÚÖ¸¶¨Ä¿Â¼¸ù¾Ýµ±Ç°Ê±¼äÉú³ÉÐÂĿ¼£¨Èçpar£ºr'E:\¿ª·¢°æ±¾\Data\logo'£© def MakeCurTimeDir(par): if not os.path.exists(par): # ´«½øÀ´µÄĿ¼²»´æÔÚ return path=par+'\\'+str(datetime.datetime.today()).split()[0] if not os.path.exists(path): # Îļþ¼ÐÊÇ·ñ´æÔÚ£¬²»´æÔÚÔò´´½¨ os.mkdir(path) # ´´½¨Îļþ¼Ð #µÃµ½Ìæ»»ºóµÄ×Ö·û´®£¨²ÎÊý£ºstringÊÇÐèÒªÌæ»»µÄ×Ö·û´®£»varlistΪ²»¶¨²Î£¬ÎªÌæ»»ÄÚÈÝ£© def GetReplaceString(string,*varlist): if '%' not in string: return string repalceCount = len(varlist) # Ìæ»»´ÎÊý newStr = string if '%%' in string: newStr = string.replace('%%','') # È¥³ý×Ö·û´®strÄÚµÄ'%%' needReplaceCount = newStr.count('%') # ×Ö·û´®newStrÄÚµÄ'%'¸öÊý,¼´ÐèÒªÌæ»»µÄ´ÎÊý if repalceCount < needReplaceCount: tempList = list(varlist) for i in range(needReplaceCount-repalceCount): tempList.append(0) replaceTuple= tuple(tempList) #¸æËßµ÷ÓÃÕߣ¬²ÎÊý´«ÉÙÁË return 'func:GetReplaceString();error:the parameter lack' # return string%replaceTuple replaceTuple = tuple(varlist[:needReplaceCount]) return string%replaceTuple