#!/usr/bin/python # -*- coding: GBK -*- #×÷Õß : eggxp import struct import string import math import datetime import IPY_XMLLoader import os #È¡µÃ°Ñ×ÓÀàÖ¸Õëת»»Îª¸¸ÀàÖ¸Õë #import weakref #weakref.proxy(b) #¶ÁÈ¡Îļþ #+b ±íʾ¶þ½øÖÆ´ò¿ª #´´½¨Îļþ¼Ð #os.makedirs(name, mode) #×Ö·û´®Ô­ÑùÊä³ö #repr(xxx) #ÎļþÊÇ·ñ´æÔÚ #os.path.exists(path) #¸³ÖµÎļþµÄ·½·¨: #import shutil #shutil.copy('c:\cccc.txt', 'd:\\') #»ñµÃÎļþ·¾¶ #os.path.dirname #È¡µÃÎļþºó׺ #os.path.splitext(file) #ÁгöĿ¼ #files = os.listdir(curPath) #for file in files: #pythonдÎļþ: # f = file('c:\\fuck.txt', 'a') #'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 def GetPercent(value1, value2): if value2 == 0: return 0 return int(float(value1) / float(value2) * 100) #ÔÚµ±Ç°½ÚµãÖмÓÈëxml×Ö·û´® def AddXML(curNode, xmlStr,xmlName): head = '' curXMLStr = head + xmlStr + '' curXML = IPY_XMLLoader.IPY_XMLLoader() curXML.LoadFromXML(xmlName,curXMLStr) headNode = curXML.GetNodeList().FindNode('Head') for i in range(headNode.GetChildCount()): curNode.ChildNodes().Add(headNode.GetChild(i).CloneNode(True)) return def DelXML(curNode): nodes = curNode.ChildNodes() while(nodes.GetCount()): nodes.Delete(0) return def OpenFileForWrite(fileName): dirName = os.path.dirname(fileName) if not os.path.isdir(dirName): os.makedirs(dirName) if os.path.isfile(fileName): return file(fileName, 'w') return file(fileName, 'a')