diff --git a/README.md b/README.md deleted file mode 100644 index 94b5764..0000000 --- a/README.md +++ /dev/null @@ -1,13 +0,0 @@ -python -====== -学习Python时的代码 - - - - - -####2016-03-20 update - -- [Machine Learning with Python](https://github.com/xxg1413/MachineLearning) -- [Python-Algorithms](https://github.com/xxg1413/Python-Algorithms) -- [python-cookbook](https://github.com/xxg1413/python-cookbook) diff --git a/primer/10/card.py b/base/10/card.py similarity index 100% rename from primer/10/card.py rename to base/10/card.py diff --git a/base/10/carddata.txt b/base/10/carddata.txt new file mode 100644 index 0000000..bd41cba --- /dev/null +++ b/base/10/carddata.txt @@ -0,0 +1 @@ +12345 \ No newline at end of file diff --git a/base/10/cardlog.txt b/base/10/cardlog.txt new file mode 100644 index 0000000..c97b068 --- /dev/null +++ b/base/10/cardlog.txt @@ -0,0 +1,2 @@ +account log: +data ....processed diff --git a/primer/10/myexc.py b/base/10/myexc.py similarity index 100% rename from primer/10/myexc.py rename to base/10/myexc.py diff --git a/primer/11/Gui.py b/base/11/Gui.py similarity index 100% rename from primer/11/Gui.py rename to base/11/Gui.py diff --git a/primer/11/deco.py b/base/11/deco.py similarity index 100% rename from primer/11/deco.py rename to base/11/deco.py diff --git a/primer/11/easyMath.py b/base/11/easyMath.py similarity index 100% rename from primer/11/easyMath.py rename to base/11/easyMath.py diff --git a/primer/11/grabWeb.py b/base/11/grabWeb.py similarity index 100% rename from primer/11/grabWeb.py rename to base/11/grabWeb.py diff --git a/primer/11/numconv.py b/base/11/numconv.py similarity index 100% rename from primer/11/numconv.py rename to base/11/numconv.py diff --git a/primer/11/odd.py b/base/11/odd.py similarity index 100% rename from primer/11/odd.py rename to base/11/odd.py diff --git a/primer/11/testit.py b/base/11/testit.py similarity index 100% rename from primer/11/testit.py rename to base/11/testit.py diff --git a/primer/12/hot.py b/base/12/hot.py similarity index 100% rename from primer/12/hot.py rename to base/12/hot.py diff --git a/primer/13/NumStr.py b/base/13/NumStr.py similarity index 100% rename from primer/13/NumStr.py rename to base/13/NumStr.py diff --git a/primer/13/Rand.py b/base/13/Rand.py similarity index 100% rename from primer/13/Rand.py rename to base/13/Rand.py diff --git a/primer/13/file.py b/base/13/file.py similarity index 100% rename from primer/13/file.py rename to base/13/file.py diff --git a/primer/13/meta.py b/base/13/meta.py similarity index 100% rename from primer/13/meta.py rename to base/13/meta.py diff --git a/primer/13/roundFloat.py b/base/13/roundFloat.py similarity index 100% rename from primer/13/roundFloat.py rename to base/13/roundFloat.py diff --git a/primer/13/time.py b/base/13/time.py similarity index 100% rename from primer/13/time.py rename to base/13/time.py diff --git a/primer/13/time60.py b/base/13/time60.py similarity index 100% rename from primer/13/time60.py rename to base/13/time60.py diff --git a/primer/16/sockCli.py b/base/16/sockCli.py similarity index 100% rename from primer/16/sockCli.py rename to base/16/sockCli.py diff --git a/primer/16/sockServ.py b/base/16/sockServ.py similarity index 100% rename from primer/16/sockServ.py rename to base/16/sockServ.py diff --git a/primer/16/tcpclient.py b/base/16/tcpclient.py similarity index 100% rename from primer/16/tcpclient.py rename to base/16/tcpclient.py diff --git a/primer/16/tcpserver.py b/base/16/tcpserver.py similarity index 100% rename from primer/16/tcpserver.py rename to base/16/tcpserver.py diff --git a/primer/16/udpCli.py b/base/16/udpCli.py similarity index 100% rename from primer/16/udpCli.py rename to base/16/udpCli.py diff --git a/primer/16/udpSer.py b/base/16/udpSer.py similarity index 100% rename from primer/16/udpSer.py rename to base/16/udpSer.py diff --git a/primer/18/sleep.py b/base/18/sleep.py similarity index 100% rename from primer/18/sleep.py rename to base/18/sleep.py diff --git a/primer/18/threading.py b/base/18/threading.py similarity index 100% rename from primer/18/threading.py rename to base/18/threading.py diff --git a/primer/19/label.py b/base/19/label.py similarity index 100% rename from primer/19/label.py rename to base/19/label.py diff --git a/primer/2/2_10.py b/base/2/2_10.py similarity index 100% rename from primer/2/2_10.py rename to base/2/2_10.py diff --git a/primer/2/2_11.py b/base/2/2_11.py similarity index 100% rename from primer/2/2_11.py rename to base/2/2_11.py diff --git a/primer/2/2_2.py b/base/2/2_2.py similarity index 100% rename from primer/2/2_2.py rename to base/2/2_2.py diff --git a/primer/2/2_7.py b/base/2/2_7.py similarity index 100% rename from primer/2/2_7.py rename to base/2/2_7.py diff --git a/primer/2/2_8.py b/base/2/2_8.py similarity index 100% rename from primer/2/2_8.py rename to base/2/2_8.py diff --git a/primer/20/Cralwer.py b/base/20/Cralwer.py similarity index 100% rename from primer/20/Cralwer.py rename to base/20/Cralwer.py diff --git a/primer/3/makeFile.py b/base/3/makeFile.py similarity index 100% rename from primer/3/makeFile.py rename to base/3/makeFile.py diff --git a/primer/3/makeTextFile.py b/base/3/makeTextFile.py similarity index 100% rename from primer/3/makeTextFile.py rename to base/3/makeTextFile.py diff --git a/primer/3/readTextFile.py b/base/3/readTextFile.py similarity index 100% rename from primer/3/readTextFile.py rename to base/3/readTextFile.py diff --git a/primer/4/display.py b/base/4/display.py similarity index 100% rename from primer/4/display.py rename to base/4/display.py diff --git a/primer/6/idcheck.py b/base/6/idcheck.py similarity index 100% rename from primer/6/idcheck.py rename to base/6/idcheck.py diff --git a/primer/6/queue.py b/base/6/queue.py similarity index 100% rename from primer/6/queue.py rename to base/6/queue.py diff --git a/primer/6/stack.py b/base/6/stack.py similarity index 100% rename from primer/6/stack.py rename to base/6/stack.py diff --git a/primer/6/unicode.txt b/base/6/unicode.txt similarity index 100% rename from primer/6/unicode.txt rename to base/6/unicode.txt diff --git a/primer/6/unicodeFile.py b/base/6/unicodeFile.py similarity index 100% rename from primer/6/unicodeFile.py rename to base/6/unicodeFile.py diff --git a/primer/7/userpw.py b/base/7/userpw.py similarity index 100% rename from primer/7/userpw.py rename to base/7/userpw.py diff --git a/primer/9/ospathex.py b/base/9/ospathex.py similarity index 100% rename from primer/9/ospathex.py rename to base/9/ospathex.py diff --git a/datastruct/binarysearch.py b/binarysearch.py similarity index 100% rename from datastruct/binarysearch.py rename to binarysearch.py diff --git a/datastruct/btree.py b/btree.py similarity index 100% rename from datastruct/btree.py rename to btree.py diff --git a/data_struct/binarysearch.py b/data_struct/binarysearch.py new file mode 100644 index 0000000..fa6a1e2 --- /dev/null +++ b/data_struct/binarysearch.py @@ -0,0 +1,25 @@ +def BinarySearch(l,key): + low=0 + high=len(l)-1 + i=0 + while(low <= high): + i = i+1 + mid = low + ((high-low)>>1) + if(l[mid] < key): + low = mid + 1 + elif (l[mid] > key): + high = mid -1 + else: + print "use %d times" % i + return mid + return -1 + +if __name__ == "__main__": + l=[1,4,5,6,7,8,9,44,333,2233] + print l + print BinarySearch(l,4) + print BinarySearch(l,44) + print BinarySearch(l,8) + print BinarySearch(l,2233) + print BinarySearch(l,77) + diff --git a/data_struct/btree.py b/data_struct/btree.py new file mode 100644 index 0000000..69434e8 --- /dev/null +++ b/data_struct/btree.py @@ -0,0 +1,62 @@ +class BTree: + def __init__(self,value): + self.left=None + self.data=value + self.right=None + + def insertLeft(self,value): + self.left=BTree(value) + return self.left + + def insertRight(self,value): + self.right=BTree(value) + return self.right + + def show(self): + print self.data + +def preorder(node): + if node.data: + node.show() + if node.left: + preorder(node.left) + if node.right: + preorder(node.right) + +def inorder(node): + if node.data: + if node.left: + inorder(node.left) + node.show() + if node.right: + inorder(node.right) + +def postorder(node): + if node.data: + if node.left: + postorder(node.left) + if node.right: + postorder(node.right) + node.show() + +if __name__ == "__main__": + + Root=BTree("root") + A=Root.insertLeft("A") + C=A.insertLeft("C") + D=C.insertRight("D") + F=D.insertLeft("F") + G=D.insertRight("G") + B=Root.insertRight("B") + E=B.insertRight("E") + + print "pre-traversal" + preorder(Root) + + print "in-traversal" + inorder(Root) + + print "post-traversal" + postorder(Root) + + diff --git a/datastruct/graph.py b/data_struct/graph.py similarity index 100% rename from datastruct/graph.py rename to data_struct/graph.py diff --git a/datastruct/queue.py b/data_struct/queue.py similarity index 100% rename from datastruct/queue.py rename to data_struct/queue.py diff --git a/datastruct/sort.py b/data_struct/sort.py similarity index 100% rename from datastruct/sort.py rename to data_struct/sort.py diff --git a/datastruct/stack.py b/data_struct/stack.py similarity index 100% rename from datastruct/stack.py rename to data_struct/stack.py diff --git a/expand/1.py b/expand/1.py deleted file mode 100644 index 3239a25..0000000 --- a/expand/1.py +++ /dev/null @@ -1,54 +0,0 @@ -#a = '19' -#print "please input a int number in 1-100" -#x = raw_input() -#if a != x: -# print "sorry you are wrong!\ninput again:" -# x = raw_input() -#else -# print "you are right" -#raw_input() - -from random import randint - -def printNum(): - - sInput = raw_input(u"请输入你猜的数字(1-100):") - - try: - nInput = int(sInput) - except (ValueError,TypeError),diag: - print str(diag) - - if(nInput < 1 or nInput > 100): - print u"你数字不在范围之内,请重新输入" - - return nInput - -def main(): - - nValue = randint(1,100) - nInput = printNum() - nTotal = 1 - - while(nValue!= nInput): - - if (nValue > nInput): - print u"你猜的数小了" - - elif (nValue < nInput): - print u"你猜的数大了" - - nTotal += 1 - nInput=printNum() - - print u"恭喜你猜对了" - print u"你直到猜对 共猜了%d次" % nTotal - - if nTotal < 10: - print u"恭喜,你的成绩超过了平均水平" - else: - print u"很遗憾,你成绩没达到平均水平" - - -if __name__ == "__main__": - main() diff --git a/expand/2.py b/expand/2.py deleted file mode 100644 index 8f1d16f..0000000 --- a/expand/2.py +++ /dev/null @@ -1,27 +0,0 @@ -#s = raw_input() -#i = 0 -#for i in s: -# print i -#raw_input() - -#扩展成在字符串中把特定字符替换成规定字符 -import re -def printReplace(srcStr,word): - for letter in srcStr: - if letter == word: - srcStr = srcStr.replace(letter,'!') #字符串不可更改 - return srcStr - -def printReplace_re(srcStr,word): - srcStr=re.sub(word,'!',srcStr) - return srcStr - -def main(): - srcStr = raw_input(u"请输入一个字符串:") - destStr=printReplace_re(srcStr,'i') - print destStr - - -if __name__ == "__main__": - main() - diff --git a/graph.py b/graph.py new file mode 100644 index 0000000..834670b --- /dev/null +++ b/graph.py @@ -0,0 +1,35 @@ +def searchGraph(graph,start,end): + results=[] + generatePath(graph,[start],end,results) + results.sort(lambda x,y:cmp(len(x),len(y))) + return results + +def generatePath(graph,path,end,results): + state=path[-1] + if state == end: + results.append(path) + else: + for arc in graph[state]: + if arc not in path: + generatePath(graph,path+[arc],end,results) + + +if __name__ == "__main__": + Graph={ + 'A':['B','C','D'], + 'B':['E'], + 'C':['D','F'], + 'D':['B','E','G'], + 'E':[], + 'F':['D','G'], + 'G':['E'] + } + r = searchGraph(Graph,'A','D') + print "A to D" + for i in r: + print i + + r=searchGraph(Graph,'A','E') + print "A to E" + for i in r: + print i diff --git a/queue.py b/queue.py new file mode 100644 index 0000000..64da3e4 --- /dev/null +++ b/queue.py @@ -0,0 +1,43 @@ +class Queue: + def __init__(self,size=20): + self.queue=[] + self.size=size + self.end=-1 + + def setSize(self,size): + self.size=size + + def In(self,element): + if self.end < self.size -1: + self.queue.append(element) + self.end = self.end + 1 + else: + raise "QueueFull" + + def Out(self): + if self.end != -1: + element = self.queue[0] + self.queue=self.queue[1:] + self.end = self.end-1 + return element + else: + raise "QueueEmpty" + + def End(self): + return self.end + + def empty(self): + self.queue=[] + self.end=-1 + +if __name__ == "__main__": + + queue=Queue() + for i in range(10): + queue.In(i) + print queue.End() + + for i in range(10): + print queue.Out() + + diff --git a/sort.py b/sort.py new file mode 100644 index 0000000..b190701 --- /dev/null +++ b/sort.py @@ -0,0 +1,78 @@ +class BTree: + def __init__(self,value): + self.left=None + self.data=value + self.right=None + + def insertLeft(self,value): + self.left=BTree(value) + return self.left + + def insertRight(self,value): + self.right=BTree(value) + return self.right + + def show(self): + print self.data + +def inorder(node): + if node.data: + if node.left: + inorder(node.left) + node.show() + if node.right: + inorder(node.right) + + +def rinorder(node): + if node.data: + if node.right: + rinorder(node.right) + node.show() + if node.left: + rinorder(node.left) + +def insert(node,value): + if value > node.data: + if node.right: + insert(node.right,value) + else: + node.insertRight(value) + else: + if node.left: + insert(node.left,value) + else: + node.insertLeft(value) + + +if __name__ == "__main__": + + l=[88,11,2,33,22,4,55,33,221,34] + Root=BTree(l[0]) + node=Root + for i in range(1,len(l)): + insert(Root,l[i]) + + print "1---->10" + inorder(Root) + print "10--->1" + rinorder(Root) + + + + + + + + + + + + + + + + + + + diff --git a/stack.py b/stack.py new file mode 100644 index 0000000..e5b65ce --- /dev/null +++ b/stack.py @@ -0,0 +1,59 @@ +class Stack: + def __init__(self,size=20): + self.stack= [] + self.size= size; + self.top= -1 + + def setSize(self,size): + self.size=size; + + def push(self,element): + if self.isFull(): + raise "StackOverflow" + else: + self.stack.append(element) + self.top = self.top + 1 + + def pop(self): + if self.isEmpty(): + raise "StackUnderflow" + else: + element=self.stack[-1] + self.top=self.top-1; + del self.stack[-1] + return element + + def Top(self): + return self.top + + def empty(self): + self.stack=[] + self.top=-1 + + def isEmpty(self): + if self.top == -1: + return True + else: + return False + + def isFull(self): + if self.top == self.size-1: + return True + else: + return False + +if __name__ == "__main__": + + stack=Stack() + + for i in range(10): + stack.push(i) + print stack.Top() + + for i in range(10): + print stack.pop() + + stack.empty() + print stack.Top() + + diff --git a/unp/1/download.py b/unp/1/download.py deleted file mode 100644 index 253caf1..0000000 --- a/unp/1/download.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import urllib,sys - -f=urllib.urlopen(sys.argv[1]) - -while True: - buf = f.read(2048) - if not len(buf): - break - sys.stdout.write(buf) diff --git a/unp/1/gopherclient.py b/unp/1/gopherclient.py deleted file mode 100644 index d5c01ce..0000000 --- a/unp/1/gopherclient.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# --coding: utf-8 -- -#简单的Gopher Client - -import socket,sys - -port = 70 #默认端口 70 -host = sys.argv[1] -filename = sys.argv[2] - -s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.connect((host,port)) - -s.sendall(filename + "\r\n") - -while 1: - buf = s.recv(2048) - if not len(buf): - break - sys.stdout.write(buf) - - diff --git a/unp/1/gopherclient2.py b/unp/1/gopherclient2.py deleted file mode 100644 index 5b1b954..0000000 --- a/unp/1/gopherclient2.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python -# --coding: utf-8 -- -#简单的Gopher Client - -import socket,sys - -port = 70 #默认端口 70 -host = sys.argv[1] -filename = sys.argv[2] - -s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) - -try: - s.connect((host,port)) -except socket.gaierror,e: - print "Error connecting to server:%s" % e - sys.exit(1) - -s.sendall(filename + "\r\n") - -while 1: - buf = s.recv(2048) - if not len(buf): - break - sys.stdout.write(buf) - - diff --git a/unp/1/gopherclient3.py b/unp/1/gopherclient3.py deleted file mode 100644 index 4bd6831..0000000 --- a/unp/1/gopherclient3.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python -# --coding: utf-8 -- -#简单的Gopher Client - -import socket,sys - -port = 70 #默认端口 70 -host = sys.argv[1] -filename = sys.argv[2] - -s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.connect((host,port)) - -fd = s.makefile('rw',0) - -fd.write(filename + "\r\n") - -for line in fd.readline(): - sys.stdout.write(line) - - - - - - - - diff --git a/unp/1/server.py b/unp/1/server.py deleted file mode 100644 index ca441c7..0000000 --- a/unp/1/server.py +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin env python - -import socket - -host='' -porr=51423 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,porr)) -s.listen(1) - -print "server is runing on port %d" % port - -while 1: - clientsock,clientaddr=s.accept() - clientfile=clientsock.makefile('rw',0) - clientfile.write("welcome," + str(clientaddr) + "\n") - clientfile.write("please enter a string:") - line = clientfile.readline().strip() - clientfile.write("you enter %d char" % len(line) ) - clientfile.close() - clientsock.close() - - diff --git a/unp/2/connect.py b/unp/2/connect.py deleted file mode 100644 index 2938a35..0000000 --- a/unp/2/connect.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin env python - -import socket - -print "create socket" -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -print "done" - - -print "connecting to the host" -s.connect(('localhost',8888)) -print "done" diff --git a/unp/2/connect1.py b/unp/2/connect1.py deleted file mode 100644 index f1efdd4..0000000 --- a/unp/2/connect1.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin env python - -import socket - -print "create socket" -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -print "done" - -print "look up port number" -port=socket.getservbyname('http','tcp') -print "done" - - -print "connecting to the host on port %d" % port -s.connect(("www.baidu.com",port)) -print "done" diff --git a/unp/2/connect3.py b/unp/2/connect3.py deleted file mode 100644 index 559e5fa..0000000 --- a/unp/2/connect3.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin env python - -import socket - -print "create socket" -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -print "done" - -print "look up port number" -port=socket.getservbyname('http','tcp') -print "done" - - -print "connecting to the host on port %d" % port -s.connect(("www.baidu.com",port)) -print "done" - -print "connected from",s.getsockname() -print "connected to",s.getpeername() diff --git a/unp/2/socketerrors.py b/unp/2/socketerrors.py deleted file mode 100644 index f7dc995..0000000 --- a/unp/2/socketerrors.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin env python - -import socket,sys - -host=sys.argv[1] -textport=sys.argv[2] -filename=sys.argv[3] - -try: - s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -except socket.error,e: - print "strange erroe create socket %s" % e - sys.exit(1) - - -try: - port = int(textport) -except ValueError: - try: - port=socket.getservbyname(textport,'tcp') - except socket.error,e: - print "could find you port %s" % e - sys.exit(1) - diff --git a/unp/2/udp.py b/unp/2/udp.py deleted file mode 100644 index 7c950e5..0000000 --- a/unp/2/udp.py +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin env python - -import socket,sys - -host=sys.argv[1] -textport=sys.argv[2] - -s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) - -try: - port=int(textport) -except ValueError: - port=socket.getservbyname(textport,'udp') - - -s.connect((host,port)) - -print "enter data to tranmit:" - -data=sys.stdin.readline().strip() -s.sendall(data) - -print "looking for replies;" - -while 1: - buf=s.recv(2048) - if not len(buf): - break - sys.stdout.write(buf) - - diff --git a/unp/3/basicserver.py b/unp/3/basicserver.py deleted file mode 100644 index 1977ee0..0000000 --- a/unp/3/basicserver.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin env python - -import socket - -host='' -port=8888 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,port)) -print "waiting for connect..." -s.listen(1) - -while 1: - clientsock,clientaddr=s.accept() - print "Go connection from ,", clientsock.getpeername() - clientsock.close() - diff --git a/unp/3/echoclient.py b/unp/3/echoclient.py deleted file mode 100644 index 7b5e002..0000000 --- a/unp/3/echoclient.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin env python - -import sys,socket - -host='localhost' -port=8888 - -data="x"*1024 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.connect((host,port)) - -bytewritten=0 -while bytewritten < len(data): - startpos=bytewritten - endpos=min(bytewritten + 1024,len(data)) - bytewritten += s.send(data[startpos:endpos]) - sys.stdout.write("write %d bytes\r" % bytewritten) - sys.stdout.flush() - -s.shutdown(1) - -print "All data sent" -while 1: - buf=s.recv(1024) - if not len(buf): - break - sys.stdout.write(buf) - - diff --git a/unp/3/echoserver.py b/unp/3/echoserver.py deleted file mode 100644 index 4e2a6ee..0000000 --- a/unp/3/echoserver.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin env python -#!--coding: utf-8 -- - -import socket,traceback - -host='' -port=8888 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,port)) -s.listen(1) - -while 1: - try: - clientsock,clientaddr=s.accept() - except KeyboardInterrupt: - raise - except: - traceback.print_exc() - continue - - try: - print "Got connection from " ,clientsock.getpeername() - while 1: - data= clientsock.recv(4096) - if not len(data): - break - clientsock.sendall(data) - except (KeyboardInterrupt,SystemExit): - raise - except: - traceback.print_exc() - try: - clientsock.close() - except KeyboardInterrupt: - raise - except: - traceback.print_exc() - - - - - diff --git a/unp/3/socketop.py b/unp/3/socketop.py deleted file mode 100644 index 073e6dd..0000000 --- a/unp/3/socketop.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin env python - -import socket - -solist = [x for x in dir(socket) if x.startswith('SO_') ] -solist.sort() - -for x in solist: - print x diff --git a/unp/3/syslogsample.py b/unp/3/syslogsample.py deleted file mode 100644 index 6faf4a2..0000000 --- a/unp/3/syslogsample.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin env python -#!--coding: utf-8-- - -import syslog,StringIO,sys,os,traceback - -def logexception(includetraceback=0): - exctype,exception,exctraceback=sys.exc_info() - excclass=str(exception.__class__) - message=str(exception) - - if not includetraceback: - syslog.syslog(syslog.LOG_ERR,"%s: %s" % (excclass,message)) - else: - excfd=StringIO.StringIO() - traceback.print_exception(exctype,exception,exctraceback,None,excfd) - - for line in excfd.getvalue().split("\n"): - syslog.syslog(syslog.LOG_ERR,line) - -def initsyslog(): - syslog.openlog("%s[%d]" % (os.path.basename(sys.argv[0]),os.getpid()),0, - syslog.LOG_DAEMON) - syslog.syslog("started.") - - -initsyslog() -try: - raise RuntimeError, "Exception 1" -except: - logexception(0) - -try: - raise RuntimeError, "Exception 2" -except: - logexception(1) - -syslog.syslog("I am a terimiting.") - - - diff --git a/unp/3/udpechoserver.py b/unp/3/udpechoserver.py deleted file mode 100644 index dc6cdcb..0000000 --- a/unp/3/udpechoserver.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin env python - -import socket,traceback - -host='' -port=8888 - -s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,port)) - -while 1: - try: - message,address=s.recvfrom(8192) - print "Go data from",address - s.sendall(message,address) - except (keyboardInterrupt,SystemExit): - raise - except: - traceback.print_exc() - - diff --git a/unp/3/xinetdserver.py b/unp/3/xinetdserver.py deleted file mode 100644 index 492b0cb..0000000 --- a/unp/3/xinetdserver.py +++ /dev/null @@ -1,11 +0,0 @@ -#/usr/bin env python - -import sys -print "welcome...." -print "please enter a string:" - -sys.stdout.flush() -line=sys.stdin.readline().strip() - - -print "you enter the %s is %d count" % (line,len(line)) diff --git a/unp/4/dns.py b/unp/4/dns.py deleted file mode 100644 index 5923b53..0000000 --- a/unp/4/dns.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin env python - -import sys,DNS - -query=sys.argv[1] -DNS.DiscoverNameServers() - -reqobj=DNS.Request() - -answerobj=reqobj.req(name=query,qtype=DNS.Type.ANY) -if not len(answerobj.answers): - print "not find" -for i in answerobj.answers: - print "%-5s %s " % (i['typename'],i['data']) - diff --git a/unp/4/dns.pyc b/unp/4/dns.pyc deleted file mode 100644 index a54fc76..0000000 Binary files a/unp/4/dns.pyc and /dev/null differ diff --git a/unp/4/environment.py b/unp/4/environment.py deleted file mode 100644 index e29251f..0000000 --- a/unp/4/environment.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin env pythhon - -import sys,socket - -def getipaddrs(hostname): - s=socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM) - return [x[4][0] for x in s] - -hostname=socket.gethostname() -print "Host name:",hostname - -print "full-name:",socket.getfqdn(hostname) -try: - print "IP address:",", ".join(getipaddrs(hostname)) -except socket.gaierror,e: - print "can not get ip address",e - diff --git a/unp/4/getaddrinfo.py b/unp/4/getaddrinfo.py deleted file mode 100644 index 5d01ae6..0000000 --- a/unp/4/getaddrinfo.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin env python - -import socket,sys - -s=socket.getaddrinfo(sys.argv[1],None,0,socket.SOCK_STREAM) - -counter=0 -for i in s: - print "%d %s" % (counter,s[counter][4]) - counter += 1 - - diff --git a/unp/4/gethostbyaddr.py b/unp/4/gethostbyaddr.py deleted file mode 100644 index 4eb61c5..0000000 --- a/unp/4/gethostbyaddr.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin env python - -import sys,socket - -try: - - s=socket.gethostbyaddr(sys.argv[1]) - - print "hostname:" - print " "+ s[0] - - print "\nAddress:" - for i in s[2]: - print " " + i - -except socket.herror,e: - print "can not look up name:",e - - diff --git a/unp/5/bcastclinet.py b/unp/5/bcastclinet.py deleted file mode 100644 index 8ed2d3a..0000000 --- a/unp/5/bcastclinet.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin env python - -import socket,traceback - -host='' -port=8888 - - -s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1) -s.bind((host,port)) - -while 1: - try: - message,address=s.recvfrom(8192) - print "Got data from",addrrss - s.sendto("I am here",address) - except (KeyboardInterrupt,SystemExit): - raise - except: - traceback.print_exc() - - - diff --git a/unp/5/bcastserver.py b/unp/5/bcastserver.py deleted file mode 100644 index 0332651..0000000 --- a/unp/5/bcastserver.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin env python - -import sys,socket - -dest=('',8888) - -s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1) -s.sendto("hello",dest) - -print "look for replies ...." -while 1: - (buf,address)=s.recvfrom(2048) - if not len(buf): - break - print "Recived from %s: %s" % (address,buf) diff --git a/unp/5/delayserver.py b/unp/5/delayserver.py deleted file mode 100644 index 388d6f9..0000000 --- a/unp/5/delayserver.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin env python - -import socket,traceback,time - -host='' -port=8888 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,port)) - -s.listen(1) - - -while 1: - try: - clientsock,clientaddr= s.accept() - except KeyboardInterrupt: - raise - except: - traceback.print_exc() - continue - - try: - print "get connect from",clientsock.getpeername() - while 1: - try: - clientsock.sendall(time.asctime() + "\n") - except: - break - time.sleep(5) - except (KeyboardInterrupt,SystemExit): - raise - except: - traceback.print_exc() -try: - clientsock.close() -except KeyboardInterrupt: - raise -except: - traceback.print_exc() - -try: - clientsock.close() -except KeyboardInterrupt: - raise -except: - traceback.print_exc() - - - - diff --git a/unp/5/nbo.py b/unp/5/nbo.py deleted file mode 100644 index f82760b..0000000 --- a/unp/5/nbo.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin env python - -import struct,sys - -def htons(num): - return struct.pack('!H',num) - -def htonl(num): - return struct.pack('!I',num) - -def ntohs(data): - return struct.unpack('!H',data)[0] - -def ntohl(data): - return struct.unpack("!I",data)[0] - -def sendstring(data): - return htonl(len(data)) + data - -print "Enter a string:" -str=sys.stdin.readline().rstrip() - -print repr(sendstring(str)) diff --git a/unp/5/pollclient.py b/unp/5/pollclient.py deleted file mode 100644 index 61c32b0..0000000 --- a/unp/5/pollclient.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin env python - -import socket,sys,select -port=8888 -host='localhost' - -spinsize=10 -spinpos=0 -spindir=1 - -def spin(): - global spinsize,spinpos,spindir - spinstr='.' * spinpos + '|'+'.'(spinsize-spinpos-1) - sys.stdout.write('r'+ spinstr + ' ') - sys.stdout.flush() - - spinpos += spindir - if spinpos < 0: - spindir=1 - spinpos=1 - elif spinpos >= spinsize: - spinpos -= 2 - spindir = -1 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.connect((host,port)) - -p=select.poll() -p.register(s.fileno(),select.POLLIN | select.POLLERR | select.POLLHUP) - -while 1: - results=p.poll(50) - if len(results): - if results[0][1] == select.POLLIN: - data = s.recv(4096) - if not len(data): - print "Remote end closed connect" - break - sys.stdout.write("\rReceived:" + data) - sys.stdout.flush() - else: - print "\rproblem occurred ; exiting" - sys.exit(0) - -spin() - - diff --git a/unp/5/selectclient.py b/unp/5/selectclient.py deleted file mode 100644 index 03cc94b..0000000 --- a/unp/5/selectclient.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin env python - -import socket,sys,select -port=8888 -host='localhost' - -spinsize=10 -spinpos=0 -spindir=1 - -def spin(): - global spinsize,spinpos,spindir - spinstr='.' * spinpos + '|' +'.'*(spinsize-spinpos-1) - sys.stdout.write('r'+ spinstr + ' ') - sys.stdout.flush() - - spinpos += spindir - if spinpos < 0: - spindir=1 - spinpos=1 - elif spinpos >= spinsize: - spinpos -= 2 - spindir = -1 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.connect((host,port)) - -while 1: - infds,outfds,errfds=select.select([s],[],[s],0.05) - if len(infds): - data=s.recv(4096) - if not len(data): - print "\rRemote end closed connection; exiting" - break - - sys.stdout.write("\rRecived: " + data) - sys.stdout.flush() - - if len(errfds): - print "\r problem occurred; exiting" - sys.exit(0) - -spin() - - - - - - - - - - - - - - diff --git a/unp/5/timeoutserver.py b/unp/5/timeoutserver.py deleted file mode 100644 index 229476d..0000000 --- a/unp/5/timeoutserver.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin env python - -import socket,traceback - -host='' -port=8888 - -s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) -s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) -s.bind((host,port)) - -s.listen(1) - - -while 1: - try: - clientsock,clientaddr= s.accept() - except KeyboardInterrupt: - raise - except: - traceback.print_exc() - continue - clientsock.settimeout(5) - - try: - print "get connect from",clientsock.getpeername() - while 1: - data=clientsock.recv(4096) - if not len(data): - break - clientsock.sendall(data) - except (KeyboardInterrupt,SystemExit): - raise - except socket.timeout: - pass - except: - traceback.print_exc() - - try: - clientsock.close() - except KeyboardInterrupt: - raise - except: - traceback.print_exc() - - - - diff --git a/unp/6/dump_info.py b/unp/6/dump_info.py deleted file mode 100644 index d351719..0000000 --- a/unp/6/dump_info.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin env python - -import sys,urllib2 - -req=urllib2.Request(sys.argv[1]) -fd=urllib2.urlopen(req) - -print "Retrieved",fd.geturl() -info=fd.info() - -for key,value in info.items(): - print "%s = %s " % ( key,value) diff --git a/unp/6/dump_page.py b/unp/6/dump_page.py deleted file mode 100644 index b550f63..0000000 --- a/unp/6/dump_page.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin env python - -import sys,urllib2 - -req=urllib2.Request(sys.argv[1]) -fd=urllib2.urlopen(req) - -while 1: - data=fd.read(1024) - if not len(data): - break - - sys.stdout.write(data) diff --git "a/\345\215\232\345\256\242/Python yield \347\224\250\346\263\225.pdf" "b/\345\215\232\345\256\242/Python yield \347\224\250\346\263\225.pdf" deleted file mode 100644 index 2ab8971..0000000 Binary files "a/\345\215\232\345\256\242/Python yield \347\224\250\346\263\225.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/Python \344\273\243\347\240\201\346\200\247\350\203\275\344\274\230\345\214\226\346\212\200\345\267\247.pdf" "b/\345\215\232\345\256\242/Python \344\273\243\347\240\201\346\200\247\350\203\275\344\274\230\345\214\226\346\212\200\345\267\247.pdf" deleted file mode 100644 index 3bd60a6..0000000 Binary files "a/\345\215\232\345\256\242/Python \344\273\243\347\240\201\346\200\247\350\203\275\344\274\230\345\214\226\346\212\200\345\267\247.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/Python \345\274\200\345\217\221\350\200\205\345\272\224\350\257\245\347\237\245\351\201\223\347\232\204 7 \344\270\252\345\274\200\345\217\221\345\272\223.pdf" "b/\345\215\232\345\256\242/Python \345\274\200\345\217\221\350\200\205\345\272\224\350\257\245\347\237\245\351\201\223\347\232\204 7 \344\270\252\345\274\200\345\217\221\345\272\223.pdf" deleted file mode 100644 index e77b65a..0000000 Binary files "a/\345\215\232\345\256\242/Python \345\274\200\345\217\221\350\200\205\345\272\224\350\257\245\347\237\245\351\201\223\347\232\204 7 \344\270\252\345\274\200\345\217\221\345\272\223.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python ftp\347\232\204\346\226\255\347\202\271\344\270\212\344\274\240.pdf" "b/\345\215\232\345\256\242/python ftp\347\232\204\346\226\255\347\202\271\344\270\212\344\274\240.pdf" deleted file mode 100644 index 99c6cff..0000000 Binary files "a/\345\215\232\345\256\242/python ftp\347\232\204\346\226\255\347\202\271\344\270\212\344\274\240.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python \345\207\275\346\225\260\344\277\256\351\245\260\345\231\250.pdf" "b/\345\215\232\345\256\242/python \345\207\275\346\225\260\344\277\256\351\245\260\345\231\250.pdf" deleted file mode 100644 index 9ffd80d..0000000 Binary files "a/\345\215\232\345\256\242/python \345\207\275\346\225\260\344\277\256\351\245\260\345\231\250.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\345\206\231\346\225\260\346\215\256\347\273\223\346\236\204.pdf" "b/\345\215\232\345\256\242/python\345\206\231\346\225\260\346\215\256\347\273\223\346\236\204.pdf" deleted file mode 100644 index e4af161..0000000 Binary files "a/\345\215\232\345\256\242/python\345\206\231\346\225\260\346\215\256\347\273\223\346\236\204.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\347\210\254\350\231\253\346\212\223\347\253\231\347\232\204\346\200\273\347\273\223.pdf" "b/\345\215\232\345\256\242/python\347\210\254\350\231\253\346\212\223\347\253\231\347\232\204\346\200\273\347\273\223.pdf" deleted file mode 100644 index c6345fe..0000000 Binary files "a/\345\215\232\345\256\242/python\347\210\254\350\231\253\346\212\223\347\253\231\347\232\204\346\200\273\347\273\223.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-epoll.pdf" "b/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-epoll.pdf" deleted file mode 100644 index f260cd0..0000000 Binary files "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-epoll.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\345\272\225\345\261\202\347\275\221\347\273\234.pdf" "b/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\345\272\225\345\261\202\347\275\221\347\273\234.pdf" deleted file mode 100644 index e362f1d..0000000 Binary files "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\345\272\225\345\261\202\347\275\221\347\273\234.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\346\225\260\346\215\256\345\272\223.pdf" "b/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\346\225\260\346\215\256\345\272\223.pdf" deleted file mode 100644 index 36a3607..0000000 Binary files "a/\345\215\232\345\256\242/python\347\275\221\347\273\234\347\274\226\347\250\213-\346\225\260\346\215\256\345\272\223.pdf" and /dev/null differ diff --git "a/\345\215\232\345\256\242/python\351\235\242\350\257\225\351\242\230.pdf" "b/\345\215\232\345\256\242/python\351\235\242\350\257\225\351\242\230.pdf" deleted file mode 100644 index cc562a4..0000000 Binary files "a/\345\215\232\345\256\242/python\351\235\242\350\257\225\351\242\230.pdf" and /dev/null differ