{"id":1332,"date":"2014-09-29T15:06:27","date_gmt":"2014-09-29T15:06:27","guid":{"rendered":"http:\/\/ixyzero.com\/blog\/?p=1332"},"modified":"2014-09-29T15:06:27","modified_gmt":"2014-09-29T15:06:27","slug":"python%e7%9f%a5%e8%af%86%e7%a7%af%e7%b4%af_0","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/1332.html","title":{"rendered":"Python\u77e5\u8bc6\u79ef\u7d2f_0"},"content":{"rendered":"<ul>\n<li><strong>Python<\/strong><strong>\u7684\u5b57\u7b26\u4e32<\/strong><strong>split<\/strong><strong>\u51fd\u6570<\/strong><\/li>\n<\/ul>\n<pre class=\"lang:default decode:true \">&gt;&gt;&gt; help(str.split)\nHelp on method_descriptor:\n\nsplit(...)\n\u00a0\u00a0\u00a0 S.split([sep [,maxsplit]]) -&gt; list of strings\n\nReturn a list of the words in the string S, using sep as the delimiter string.\u00a0 If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result.<\/pre>\n<p>\u6d4b\u8bd5\u4ee3\u7801\u7247\u6bb5\uff1a<\/p>\n<pre class=\"lang:default decode:true\">testStr = 'a b\u00a0 c\u00a0\u00a0 d \u00a0\u00a0\u00a0 efg'\nprint testStr\n\nres = testStr.split(' ')\nfor id, item in enumerate(res):\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print id, item\n\nres2 = testStr.split()\nfor id, item in enumerate(res2):\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 print id, item<\/pre>\n<p><strong>\u5c0f\u7ec6\u8282\uff1a <span style=\"color: #ff0000;\">\u5982\u679c\u4f60\u7684\u5206\u9694\u7b26\u662f\u4e00\u4e2a\u6216\u8005\u591a\u4e2a\u7a7a\u683c(\u7a7a\u767d\u5b57\u7b26)\uff0c\u90a3\u4e48\u4f60\u5c31\u4e0d\u5fc5\u7ed9\u51fa\u4efb\u4f55\u53c2\u6570\uff0c\u5373\u76f4\u63a5\u4f7f\u7528str.split() \u5373\u53ef\uff01<\/span><\/strong>\u9700\u8981\u6ce8\u610f\u7684\u662f\u8fd9\u79cd\u5206\u9694\u65b9\u6cd5\u5bf9\u4e8e\u4e2d\u95f4\u4e3a\u7a7a\u7684\u9879\u4f1a\u5ffd\u7565\uff0c\u4e5f\u5c31\u662f\u8bf4\u5982\u679c\u4f60\u8981\u5bf9\u591a\u884c\u6587\u672c\u9010\u884csplit()\uff0c\u5047\u5982\u4f60\u671f\u671b\u6bcf\u884c\u90fd\u88ab\u5206\u9694\u4e3a10\u5217\uff0c\u4f46\u662f\u5982\u679c\u67d0\u4e00\u5217\u4e3a\u7a7a\uff0c\u90a3\u4e48\u4f60\u53ef\u80fd\u53ea\u4f1a\u5f97\u52309\u5217\uff01\u8fd9\u4e2a\u95ee\u9898\u8be5\u600e\u4e48\u89e3\u51b3\uff1f\u8fd8\u4e0d\u77e5\u9053\u2026\u2026<\/p>\n<ul>\n<li><strong>Python<\/strong><strong>\u7528\u591a\u4e2a\u5206\u9694\u7b26\u62c6\u5206\u5b57\u7b26\u4e32<\/strong><\/li>\n<\/ul>\n<p>\u5f88\u591a\u65f6\u5019\u6211\u4eec\u9700\u8981\u7528\u591a\u4e2a\u5206\u9694\u7b26\u62c6\u5206\u5b57\u7b26\u4e32\uff0c\u4f8b\u5982\u62c6\u5206\u6807\u7b7e\u65f6\uff0c\u65e2\u8981\u7528\u4e2d\u6587\u7684\u5206\u53f7\uff0c\u4e5f\u8981\u7528\u5230\u82f1\u6587\u7684\u5206\u53f7\u3002\u4f46\u662f\u5b57\u7b26\u4e32\u81ea\u5e26\u7684split()\u51fd\u6570\u65e0\u6cd5\u8fbe\u5230\u8fd9\u6837\u7684\u529f\u80fd\uff0c\u6240\u4ee5\u9700\u8981\u81ea\u5df1\u5199\u4e00\u4e2a\uff1a<\/p>\n<pre class=\"lang:default decode:true\">def tsplit(string, delimiters):\n    \"\"\"Behaves str.split but supports multiple delimiters.\"\"\"\n    delimiters = tuple(delimiters)\n    stack = [string,]\n    for delimiter in delimiters:\n        for i, substring in enumerate(stack):\n            substack = substring.split(delimiter)\n            stack.pop(i)\n            for j, _substring in enumerate(substack):\n                stack.insert(i+j, _substring)\n\n    return stack\n####\ns = 'thing1,thing2\/thing3-thing4'\nprint tsplit(s, (',', '\/', '-'))\t# ['thing1', 'thing2', 'thing3', 'thing4']\nprint tsplit('\u4f60\u597d\uff0cPython,yoyo-checknow. Justdoit!', (',', '\uff0c', '.'))\t# ['xe4xbdxa0xe5xa5xbd', 'Python', 'yoyo-checknow', ' Justdoit!']<\/pre>\n<ul>\n<li><strong>Python<\/strong><strong>\u6253\u5370\u5b57\u5178<\/strong><\/li>\n<\/ul>\n<p>\u4e4b\u524d\u5728\u4f7f\u7528Python\u7684\u5b57\u5178\u8fdb\u884c\u53bb\u91cd\u64cd\u4f5c\u65f6\uff0c\u56e0\u4e3a\u6700\u5148\u5b66\u4e60\u7684\u662f\u522b\u4eba\u7684\u65b9\u6cd5\uff08\u6700\u540e\u4f7f\u7528\u4e86sorted\u51fd\u6570\u8fdb\u884c\u4e86\u4e2a\u6392\u5e8f\u64cd\u4f5c\uff09\uff1a<\/p>\n<pre class=\"lang:default decode:true\">soredic = sorted(self.dic.items(), key=lambda d:d[1], reverse=True)\ncounts = 0;\nfor item in soredic:\n\u00a0\u00a0\u00a0 if counts==int(self.count):\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break\n\u00a0\u00a0\u00a0 print(\"IP: %stTotal Times: %s\"%(item[0], item[1]))\n\u00a0\u00a0\u00a0 counts = counts+1<\/pre>\n<p>\u4f46\u662f\uff0c\u5f53\u5b57\u5178\u4e2d\u5b58\u653e\u7684\u5185\u5bb9\u8f83\u591a\u65f6\uff0c\u4f7f\u7528sorted\u51fd\u6570\u4f1a\u6d88\u8017\u65f6\u95f4\uff0c\u56e0\u4e3a\u63d0\u524d\u6392\u5e8f\u662f\u6ca1\u4ec0\u4e48\u5b9e\u9645\u6548\u7528\u7684\uff0c\u4f46\u662f\u5f53\u65f6\u6211\u8fd8\u4e0d\u77e5\u9053\u8be5\u600e\u4e48\u6253\u5370\u5b57\u5178\uff0c\u540e\u6765\u641c\u7d22\u4e86\u4e4b\u540e\u624d\u660e\u767d\uff1a<\/p>\n<p>\u5982\u679c\u76f4\u63a5\u5bf9dict\u7c7b\u578b\u7684\u6570\u636e\u8fdb\u884c\u5faa\u73af\uff0c\u5219\u4f1a\u62a5\u9519\uff1a<\/p>\n<pre class=\"lang:default decode:true\">&gt;&gt;&gt; print dict_str\n{'blue': '5555@sina.com', 'allen': '222@163.com', 'sophia': '4444@gmail.com', 'ceen': 'blue@263.net'}\n\n&gt;&gt;&gt; for key, value in dict_str:\n...\u00a0\u00a0\u00a0\u00a0 print key, value\n...\nTraceback (most recent call last):\n\u00a0 File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\nValueError: too many values to unpack<\/pre>\n<p>\u56e0\u4e3a\u9700\u8981dict.items()\u6216dict.keys()\u624d\u80fd\u4ea7\u751f\u4e00\u4e2a\u53ef\u8fed\u4ee3\u7684\u5bf9\u8c61\uff0c\u5426\u5219\u4f1a\u89e3\u5305\u5931\u8d25\u3002<\/p>\n<p><strong>\u5bf9\u5b57\u5178\u6570\u636e\u8fdb\u884c\u6392\u5e8f<\/strong><strong>(<\/strong><strong>\u5bf9\u5b57\u5178\u8fdb\u884c\u6392\u5e8f\u9700\u8981\u4f7f\u7528<\/strong><strong>sorted()<\/strong><strong>\u65b9\u6cd5<\/strong><strong>)<\/strong><br \/>\ndict_str = {\u2018blue&#8217;:\u20195555@sina.com\u2019,<br \/>\n\u2018allen&#8217;:\u2019222@163.com\u2019,<br \/>\n\u2018sophia&#8217;:\u20194444@gmail.com\u2019,<br \/>\n\u2018ceen&#8217;:\u2019blue@263.net\u2019}<br \/>\nprint dict_str<br \/>\n# <strong>\u6309\u7167<\/strong><strong>key<\/strong><strong>\u8fdb\u884c\u6392\u5e8f<\/strong><br \/>\nprint <strong>sorted<\/strong>(dict_str.items(), key=lambda d: d[0])<br \/>\n# <strong>\u6309\u7167<\/strong><strong>value<\/strong><strong>\u8fdb\u884c\u6392\u5e8f<\/strong><br \/>\nprint <strong>sorted<\/strong>(dict_str.items(), key=lambda d: d[1])<\/p>\n<hr \/>\n<p>\u5728Python \u4e2d\u6253\u5370\u5b57\u5178\uff0c\u5982\u679c\u5b57\u5178\u91cc\u9762\u53c8\u6709\u5b57\u5178\uff0c\u5219\u8f93\u51fa\u4e0d\u597d\u770b\u3002<\/p>\n<p>\u65b9\u6cd5\u4e00\uff1a\u4f7f\u7528\u5185\u7f6e\u7684pprint<\/p>\n<p>\u65b9\u6cd5\u4e8c\uff1a\u81ea\u5df1\u5199\u4e00\u4e2a\u51fd\u6570<\/p>\n<pre class=\"lang:default decode:true\">&gt;&gt;&gt; d = {1:{'who':{'name':'Michael','age':20,'job':{'P':'90-91','G':'91-93'}}},2:{'who':{'name':'Mary','age':18,'job':{'P':'90-93','G':'93-95'}}}}\n&gt;&gt;&gt; d\n{1: {'who': {'job': {'P': '90-91', 'G': '91-93'}, 'age': 20, 'name': 'Michael'}}, 2: {'who': {'job': {'P': '90-93', 'G': '93-95'}, 'age': 18, 'name': 'Mary'}}}\n\ndef print_dict (d, n=0):\n    for k, v in d.items():\n        print 't'*n,\n        if type(v)==type({}):\n            print \"%s : {\" % k\n            print_dict(v,n+1)\n        else:\n            print(\"%s : %s\" % (k,v))\n    if n != 0:\n        print 't'*(n-1)+ '}'\n\n&gt;&gt;&gt; print_dict(d)\n 1 : {\n\twho : {\n\t\tjob : {\n\t\t\tP : 90-91\n\t\t\tG : 91-93\n\t\t}\n\t\tage : 20\n\t\tname : Michael\n\t}\n}\n 2 : {\n\twho : {\n\t\tjob : {\n\t\t\tP : 90-93\n\t\t\tG : 93-95\n\t\t}\n\t\tage : 18\n\t\tname : Mary\n\t}\n}<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>\u53c2\u8003<\/strong><\/span>\uff1a<a href=\"http:\/\/ipython.iteye.com\/blog\/1962679\" target=\"_blank\">http:\/\/ipython.iteye.com\/blog\/1962679<\/a><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Python<\/strong><strong>\u7684<\/strong><strong>KeyError<\/strong><strong>\u5f02\u5e38<\/strong><\/li>\n<\/ul>\n<p><strong>\u5982\u679c\u4e0d\u77e5\u9053dict<\/strong><strong>\u4e2d\u662f\u5426\u6709key<\/strong><strong>\u7684\u503c\uff0c\u90a3\u4e48\u6700\u597d\u7528dict.get(key) <\/strong><strong>\u65b9\u6cd5\u53d6\u503c<\/strong><\/p>\n<p>\u5982\u679c\u7528dict[key] \u7684\u65b9\u5f0f\u8fdb\u884c\u8bfb\u53d6\u5219\u4f1a\u62a5KeyError\u5f02\u5e38\uff0c<\/p>\n<p>dict.get\u65b9\u6cd5\u4e3b\u8981\u662f\u63d0\u4f9b\u4e00\u4e2a\u53d6\u4e0d\u5230\u5bf9\u5e94key\u7684value\u5c31\u8fd4\u56de\u9ed8\u8ba4\u503c\u7684\u529f\u80fd\uff0c\u800cdict[key]\u5b9e\u9645\u4e0a\u662f\u8c03\u7528\u4e86__getitem__\u65b9\u6cd5<\/p>\n<p>\u8bf4\u660e\uff08 help(dict.get) \u6216 dir(dict.get) \uff09\uff1a<\/p>\n<p>D.get(key[, d])\u00a0 -&gt;D[k] if k in D, else d.\u00a0\u00a0 d defaults to None.<\/p>\n<ul>\n<li><strong>Python<\/strong><strong>\u6839\u636e\u4e3b\u673a\u540d\u5b57\u83b7\u5f97\u6240\u6709<\/strong><strong>ip<\/strong><strong>\u5730\u5740<\/strong><\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">import sys, socket\nresult = socket.getaddrinfo('www.baidu.com', None, 0, socket.SOCK_STREAM)\nfor id, item in enumerate(result):\n\u00a0\u00a0\u00a0 print \"%-2d: %s\" % (id, item[4])<\/pre>\n<hr \/>\n<h6>\u663e\u793aPython\u4ee3\u7801\u6267\u884c\u65f6\u95f4\uff1a<\/h6>\n<pre class=\"lang:default decode:true \">from time import strftime\n\nprint '[+] [%s] [Start]n' % strftime('%X')\n\n# code\n\nprint 'n[+] [%s] [End]' % strftime('%X')<\/pre>\n<h6>\u968f\u673a\u5bc6\u7801\u751f\u6210\uff1a<\/h6>\n<pre class=\"lang:default decode:true  \">import random\nclass Dictor():\n    CSet='abcdefghijklmnopqrstuvwxyz0123456789'\n    def __init__(self, minlen, maxlen):\n        if maxlen&gt;minlen:\n            self.__minlen=minlen\n            self.__maxlen=maxlen\n        else:\n            self.__minlen=maxlen\n            self.__maxlen=minlen\n    def __iter__(self):\n        return self\n    def next(self):\n        ret = ''\n        for i in range(0, random.randrange(self.__minlen, self.__maxlen+1)):\n            ret += random.choice(Dictor.CSet)\n        return ret\n\nif __name__=='__main__':\n    for word in Dictor(3, 3):\n        print str(word)<\/pre>\n<h6>\u968f\u673a\u5bc6\u7801\u751f\u62102\uff1a<\/h6>\n<pre class=\"lang:default decode:true\">import string, random\ndef makePassword(minlength = 5, maxlength = 25):\n    length = random.randint(minlength, maxlength)\n    letters = string.ascii_letters + string.digits\n    return ''.join([random.choice(letters) for _ in range(length)])\nprint makePassword()\n\nprint (sorted(random.sample(range(1,36), 5)) + sorted(random.sample(range(1,13),2)))<\/pre>\n<h6>\u6d4b\u8bd5URL\u7684\u6709\u6548\u6027\uff1a<\/h6>\n<pre class=\"lang:default decode:true \">#!\/usr\/bin\/env python\n# -*- coding: utf-8 -*-\nimport urllib2\ngood_list = []\nbad_list = []\n\ndef get_responses(url):\n    try:\n        resp = urllib2.urlopen(url, timeout=2)\n    except urllib2.URLError, e:\n        print e\n        return 0\n    retcode = resp.getcode()\n    if retcode == 200:\n        good_list.append(url)\n\nurllist = open('urllist.txt', 'r')\nfor item in urllist:\n    get_responses(item)\nurllist.close()\nprint \"Good URLs:%d \u4e2a\" %(len(good_list))\n\n\n# !\/usr\/bin\/python\n# -*- coding: utf-8 -*-\nimport urllib2\ngood_list = []\nbad_list = []\n\ndef get_responses(url):\n    try:\n        resp = urllib2.urlopen(url, timeout=3)\n    except urllib2.URLError, e:\n        print e\n        bad_list.append(url)\n        return 0\n    retcode = resp.getcode()\n    if retcode == 200:\n        good_list.append(url)\n        #return 1\n    else:\n        bad_list.append(url)\n        #return 0\n\nurllist = open('urllist.txt', 'r')\nfor item in urllist:\n    r = get_responses(item)\n    #if r &gt; 0 :\n    #    print 'Good URL: %s' % item\n    #else :\n    #    print 'Bad URL: %s' % item\nurllist.close()\nprint \"Total URLs: %d, Good URLs:%d, Bad URLs: %d.\" %((len(good_list)+len(bad_list)), len(good_list), len(bad_list))\n\ngoodurl = open('goodurl.txt', 'w+')\nfor item in good_list:\n    goodurl.write(item+'n')\ngoodurl.close()\n\nprint \"The mission is done, Please check the goodurl.txt file\"<\/pre>\n<h6>\u7ed9\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6\u6309\u521b\u5efa\u65f6\u95f4\u6392\u5e8f<\/h6>\n<pre class=\"lang:default decode:true \">def compare(x, y):\n    stat_x = os.stat(DIR + \"\/\" + x)\n    stat_y = os.stat(DIR + \"\/\" + y)\n    if stat_x.st_ctime &lt; stat_y.st_ctime:\n        return -1\n    elif stat_x.st_ctime &gt; stat_y.st_ctime:\n        return 1\n    else:\n        return 0\n\nDIR = \"\/home\/zero\/workspace\"\niterms = os.listdir(DIR)\niterms.sort(compare)\nfor iterm in iterms:\n    print iterm<\/pre>\n<h6>\u5217\u8868\u5185\u5bb9\u8fc7\u6ee4<\/h6>\n<pre class=\"lang:default decode:true \">import os\nitems = os.listdir(\".\")\nnewlist = []\nfor names in items:\n    if names.endswith(\".txt\"):\n        newlist.append(names)\nprint newlist<\/pre>\n<h6>\u6587\u4ef6\u5185\u5bb9\u8bfb\u53d6\uff08\u53d6\u524d1000\u884c\uff09<\/h6>\n<pre class=\"lang:default decode:true \">#!\/usr\/bin\/env python\n# -*- coding: utf-8 -*-\n\nset1 = [line.split()[1].strip() for line in open('sourceIP.txt').readlines()]\nset2 = [line.split()[1].strip() for line in open('sourceIP2.txt').readlines()]\n\nprint list(set(set1).difference(set(set2))) # in set1 not in set2\n\n#print list(set(set1).intersection(set(set2)))  # in both set1 and set2\n\ntop1000 = [line.strip() for line in open('sourceIP.txt').readlines()[:1000]]\ntop1000 = [line.split()[1].strip() for line in open('sourceIP.txt').readlines()[:1000]]<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h6>\u53c2\u8003\/\u5b66\u4e60\u94fe\u63a5\uff1a<\/h6>\n<ul>\n<li><a href=\"http:\/\/blog.csdn.net\/sasoritattoo\/article\/details\/12451359\" target=\"_blank\">python\u4ee3\u7801`if not x:` \u548c`if x is not None:`\u548c`if not x is None:`\u4f7f\u7528<\/a><\/li>\n<li><a href=\"http:\/\/blog.csdn.net\/tsxw24\/article\/details\/16121115\" target=\"_blank\">\u5224\u65adpython \u5217\u8868\/\u5b57\u5178\u6df1\u5c42key\u662f\u5426\u5b58\u5728\u7684\u65b9\u6cd5<\/a><\/li>\n<li><a href=\"http:\/\/ipython.iteye.com\/blog\/1962679\" target=\"_blank\">python \u6253\u5370\u5b57\u5178<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Python\u7684\u5b57\u7b26\u4e32split\u51fd\u6570 &gt;&gt;&gt; help(str.split) Help on  [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[8,258,357],"class_list":["post-1332","post","type-post","status-publish","format-standard","hentry","category-programing","tag-python","tag-sorted","tag-split"],"views":4206,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=1332"}],"version-history":[{"count":0,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/1332\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=1332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=1332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=1332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}