{"id":4465,"date":"2019-06-13T20:09:34","date_gmt":"2019-06-13T12:09:34","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=4465"},"modified":"2019-06-13T20:09:34","modified_gmt":"2019-06-13T12:09:34","slug":"python%e7%9a%84%e4%b8%80%e4%ba%9b%e5%b0%8f%e7%9f%a5%e8%af%86%e7%82%b9_14","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/4465.html","title":{"rendered":"Python\u7684\u4e00\u4e9b\u5c0f\u77e5\u8bc6\u70b9_14"},"content":{"rendered":"\n<p>=Start=<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u7f18\u7531\uff1a<\/h4>\n\n\n\n<p>\u6574\u7406\u603b\u7ed3\u4e00\u4e0b\u6700\u8fd1\u5728\u7f16\u7801\u8fc7\u7a0b\u4e2d\u9047\u5230\u7684\u4e00\u4e9bPython\u77e5\u8bc6\u70b9\uff0c\u65b9\u4fbf\u4ee5\u540e\u5feb\u901f\u53c2\u8003\u3001\u5b66\u4e60\u3002\uff08<strong>\u5176\u5b9e\u5f88\u591a\u77e5\u8bc6\u70b9\u4e4b\u524d\u90fd\u6216\u591a\u6216\u5c11\u7684\u6574\u7406\u8fc7\uff0c\u4f46\u65f6\u95f4\u4e00\u957f\u3001\u5f88\u4e45\u6ca1\u7528\u4e4b\u540e\u5c31\u5fd8\u4e86\uff0c\u53ea\u80fd\u901a\u8fc7\u4e0d\u65ad\u7684\u4f7f\u7528\u3001\u6574\u7406\u6765\u52a0\u5f3a\u8bb0\u5fc6<\/strong>\uff09<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u6b63\u6587\uff1a<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>1\u3001\u5982\u4f55\u5c06\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\uff08\u7b80\u5355\u5feb\u901f\u5730\uff09\u6309\u884c\u8bfb\u5165\u5e76\u653e\u5165set<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">set(line.strip() for line in open('filename.txt'))<\/pre>\n\n\n\n<p>\u5373\uff0c<strong>\u5982\u679c\u6ca1\u6709\u4ec0\u4e48\u590d\u6742\u7684\u5224\u65ad\u3001\u8fc7\u6ee4\u6761\u4ef6\uff0c\u5229\u7528\u5217\u8868\u63a8\u5bfc\u5f0f\u5373\u53ef\u5feb\u901f\u5b9e\u73b0<\/strong>\uff08\u5e76\u4e0d\u9002\u5408\u975e\u5e38\u5927\u7684\u6587\u4ef6\uff09\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/874017\/python-load-words-from-file-into-a-set\">https:\/\/stackoverflow.com\/questions\/874017\/python-load-words-from-file-into-a-set<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/3277503\/how-to-read-a-file-line-by-line-into-a-list\">https:\/\/stackoverflow.com\/questions\/3277503\/how-to-read-a-file-line-by-line-into-a-list<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>2\u3001Python\u4e2d\u7684\u4e09\u5143\u64cd\u4f5c\u7b26<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">a = 1<br>b = 2<br>h = \"\"<br>print(h)<br>h = \"\u53d8\u91cf1\" if a&gt;b else \"\u53d8\u91cf2\"<br>print(h)<br><br>is_fat = True<br>state = \"fat\" if is_fat else \"not fat\"<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.cnblogs.com\/mywood\/p\/7416893.html\">https:\/\/www.cnblogs.com\/mywood\/p\/7416893.html<\/a><\/li><li><a href=\"https:\/\/eastlakeside.gitbooks.io\/interpy-zh\/content\/ternary_operators\/ternary_operators.html\">https:\/\/eastlakeside.gitbooks.io\/interpy-zh\/content\/ternary_operators\/ternary_operators.html<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>3\u3001\u5982\u4f55\u5feb\u901f\u4eceURL\u4e2d\u63d0\u53d6\u4e3b\u673a\u540d\u7b49\u4fe1\u606f\uff1f<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">&gt;&gt;&gt; from urlparse import urlparse<br>&gt;&gt;&gt; o = urlparse('http:\/\/www.cwi.nl:80\/%7Eguido\/Python.html')<br>&gt;&gt;&gt; o<br>ParseResult(scheme='http', netloc='www.cwi.nl:80', path='\/%7Eguido\/Python.html', params='', query='', fragment='')<br>&gt;&gt;&gt; o.scheme<br>'http'<br>&gt;&gt;&gt; o.netloc<br>'www.cwi.nl:80'<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/pymotw.com\/2\/urlparse\/\">https:\/\/pymotw.com\/2\/urlparse\/<\/a><\/li><li><a href=\"https:\/\/docs.python.org\/2\/library\/urlparse.html\">https:\/\/docs.python.org\/2\/library\/urlparse.html<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/9626535\/get-protocol-host-name-from-url\">https:\/\/stackoverflow.com\/questions\/9626535\/get-protocol-host-name-from-url<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/9530950\/parsing-hostname-and-port-from-string-or-url\/17769986\">https:\/\/stackoverflow.com\/questions\/9530950\/parsing-hostname-and-port-from-string-or-url\/17769986<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>4\u3001\u5982\u4f55\u5224\u65ad\u67d0\u4e2aIP\u662f\u5426\u4e3a\u5185\u7f51\u5730\u5740<\/strong><\/h6>\n\n\n\n<p>\u65b9\u6cd5\u4e00\uff1a\u501f\u52a9 IPy \u6a21\u5757<br><strong>\u65b9\u6cd5\u4e8c\uff1aPython 3\u63d0\u4f9b\u4e86\u4e00\u4e2a ipaddress \u7684\u5185\u7f6e\u6a21\u5757<\/strong><br>\u65b9\u6cd5\u4e09\uff1a\u7528\u6b63\u5219\u8fdb\u884c\u5224\u65ad<br><strong>\u65b9\u6cd5\u56db\uff1a\u7528\u5185\u7f6e\u7684unpack\u548csocket\u6a21\u5757\u8fdb\u884c\u5224\u65ad<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from struct import unpack<br>from socket import AF_INET, inet_pton<br><br>def lookup(ip):<br>    f = unpack('!I',inet_pton(AF_INET,ip))[0]<br>    private = (<br>        [ 2130706432, 4278190080 ], # 127.0.0.0, 255.0.0.0 http:\/\/tools.ietf.org\/html\/rfc3330<br>        [ 3232235520, 4294901760 ], # 192.168.0.0, 255.255.0.0 http:\/\/tools.ietf.org\/html\/rfc1918<br>        [ 2886729728, 4293918720 ], # 172.16.0.0, 255.240.0.0 http:\/\/tools.ietf.org\/html\/rfc1918<br>        [ 167772160, 4278190080 ], # 10.0.0.0, 255.0.0.0 http:\/\/tools.ietf.org\/html\/rfc1918<br>    ) <br>    for net in private:<br>        if (f &amp; net[1]) == net[0]:<br>            return True<br>    return False<br><br># example<br>print(lookup(\"127.0.0.1\"))<br>print(lookup(\"192.168.10.1\"))<br>print(lookup(\"10.10.10.10\"))<br>print(lookup(\"172.17.255.255\"))<br># outputs True True True True<\/pre>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>5\u3001\u5982\u4f55\u6839\u636e\u57df\u540d\/\u4e3b\u673a\u540d\u83b7\u53d6\u5bf9\u5e94\u7684IP<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">import socket<br>print socket.gethostbyname('stackexchange.com')<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/34573322\/read-a-list-of-hostnames-and-resolve-to-ip-addresses\">https:\/\/stackoverflow.com\/questions\/34573322\/read-a-list-of-hostnames-and-resolve-to-ip-addresses<\/a><\/li><li><a href=\"https:\/\/docs.python.org\/2\/library\/socket.html#socket.gethostbyname\">https:\/\/docs.python.org\/2\/library\/socket.html#socket.gethostbyname<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>6\u3001\u5982\u4f55\u5728\u89e3\u6790\u57df\u540d\u7684IP\u65f6\u4f7f\u7528\u81ea\u5df1\u8bbe\u5b9a\u7684DNS\u670d\u52a1\u5668\u5730\u5740<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">from dns import resolver<br><br>res = resolver.Resolver()<br>res.nameservers = ['8.8.8.8']<br><br>answers = res.query('stackexchange.com')<br>for rdata in answers:<br>    print (rdata.address)<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/rthalley\/dnspython\">https:\/\/github.com\/rthalley\/dnspython<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/34793061\/socket-resolve-dns-with-specific-dns-server\">https:\/\/stackoverflow.com\/questions\/34793061\/socket-resolve-dns-with-specific-dns-server<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>7\u3001Python\u4e2d\u5982\u4f55\u5c06 \u65f6:\u5206:\u79d2 \u7684\u683c\u5f0f\u8f6c\u6362\u6210 xx \u79d2\uff1f<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\"># \u65b9\u6cd5\u4e00\uff1a\u501f\u52a9 datetime \u6a21\u5757<br>&gt;&gt;&gt; import datetime<br>&gt;&gt;&gt; import time<br>&gt;&gt;&gt; x = time.strptime('00:01:00,000'.split(',')[0],'%H:%M:%S')<br>&gt;&gt;&gt; datetime.timedelta(hours=x.tm_hour,minutes=x.tm_min,seconds=x.tm_sec).total_seconds()<br>60.0<br><br># \u65b9\u6cd5\u4e8c\uff1a\u7d2f\u52a0\u8ba1\u7b97<br>timestr = '00:04:23'<br>ftr = [3600,60,1]<br>sum([a*b for a,b in zip(ftr, map(int,timestr.split(':')))])<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/10663720\/converting-a-time-string-to-seconds-in-python\">https:\/\/stackoverflow.com\/questions\/10663720\/converting-a-time-string-to-seconds-in-python<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/6402812\/how-to-convert-an-hmmss-time-string-to-seconds-in-python\">https:\/\/stackoverflow.com\/questions\/6402812\/how-to-convert-an-hmmss-time-string-to-seconds-in-python<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>8\u3001Python\u4e2d\u5982\u4f55\u5c06 DD\/MM\/YYYY HH:MM:SS \u7b49\u683c\u5f0f\u7684\u65e5\u671f\u5b57\u7b26\u4e32\u8f6c\u6362\u6210 xx \u79d2\u7684\u5f62\u5f0f\uff1f<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">&gt;&gt;&gt; import datetime<br>&gt;&gt;&gt; import time<br>&gt;&gt;&gt; s = \"16\/08\/2013 09:51:43\"<br>&gt;&gt;&gt; d = datetime.datetime.strptime(s, \"%d\/%m\/%Y %H:%M:%S\")<br>&gt;&gt;&gt; time.mktime(d.timetuple())<br>1376632303.0<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/18269888\/convert-datetime-format-into-seconds\">https:\/\/stackoverflow.com\/questions\/18269888\/convert-datetime-format-into-seconds<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/2775864\/python-create-unix-timestamp-five-minutes-in-the-future\/16307378#16307378\">https:\/\/stackoverflow.com\/questions\/2775864\/python-create-unix-timestamp-five-minutes-in-the-future\/16307378#16307378<\/a><\/li><li><a href=\"https:\/\/docs.python.org\/2\/library\/time.html#time.mktime\">https:\/\/docs.python.org\/2\/library\/time.html#time.mktime<\/a><\/li><\/ul>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>9\u3001Python\u4e2d\u5982\u4f55\u5c06\u5305\u542b\u4e2d\u6587\u7684json\/dict\u8fdb\u884c\u683c\u5f0f\u5316\u8f93\u51fa\uff1f<\/strong><\/h6>\n\n\n\n<pre class=\"wp-block-preformatted\">import json<br>your_json = '[\"foo\", {\"bar\":[\"\u4f60\u597d\", null, 1.0, 2]}]' # json array string<br>parsed = json.loads(your_json) # type(parsed) == list<br><br>print(parsed)<br># [u'foo', {u'bar': [u'\\u4f60\\u597d', None, 1.0, 2]}]<br>print(json.dumps(parsed, indent=4, ensure_ascii=False))<br># [<br># \"foo\",<br># {<br># \"bar\": [<br># \"\\u4f60\\u597d\",<br># null,<br># 1.0,<br># 2<br># ]<br># }<br># ]<br>print(json.dumps(parsed, indent=4, ensure_ascii=False))<br># [<br># \"foo\",<br># {<br># \"bar\": [<br># \"\u4f60\u597d\",<br># null,<br># 1.0,<br># 2<br># ]<br># }<br># ]<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/12943819\/how-to-prettyprint-a-json-file\">https:\/\/stackoverflow.com\/questions\/12943819\/how-to-prettyprint-a-json-file<\/a><\/li><li><a href=\"https:\/\/docs.python.org\/2\/library\/json.html#json.dumps\">https:\/\/docs.python.org\/2\/library\/json.html#json.dumps<\/a><\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n\n\n\n<ul class=\"wp-block-list\"><li>\u5982\u4e0a<\/li><\/ul>\n\n\n\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u6574\u7406\u603b\u7ed3\u4e00\u4e0b\u6700\u8fd1\u5728\u7f16\u7801\u8fc7\u7a0b\u4e2d\u9047\u5230\u7684\u4e00\u4e9bPython\u77e5\u8bc6\u70b9\uff0c\u65b9\u4fbf\u4ee5\u540e\u5feb\u901f\u53c2\u8003\u3001\u5b66\u4e60\u3002\uff08\u5176 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7,12],"tags":[166,205,181,8,173,1419,1418],"class_list":["post-4465","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","category-tools","tag-datetime","tag-dns","tag-json","tag-python","tag-socket","tag-unpack","tag-urlparse"],"views":5211,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4465","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=4465"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4465\/revisions"}],"predecessor-version":[{"id":4467,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/4465\/revisions\/4467"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=4465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=4465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=4465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}