您的位置:首页 > 编程语言 > Python开发

python编程常用模板总结

2016-02-15 12:50 555 查看
在我们编程时,有一些代码是固定的,例如Socket连接的代码,读取文件内容的代码,一般情况下我都是到网上搜一下然后直接粘贴下来改一改,当然如果你能自己记住所有的代码那更厉害,但是自己写毕竟不如粘贴来的快,而且自己写的代码还要测试,而一段经过测试的代码则可以多次使用,所以这里我就自己总结了一下python中常用的编程模板,如果还有哪些漏掉了请大家及时补充哈。

一、读写文件

1、读文件

(1)、一次性读取全部内容
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">filepath=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'D:/data.txt'</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#文件路径</span>

<span class="hljs-operator" style="box-sizing: border-box;">with</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">open</span>(filepath, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'r'</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> f:
print f.<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">read</span>()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>


(2)读取固定字节大小
<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

filepath=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'D:/data.txt'</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#文件路径</span>

f = open(filepath, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'r'</span>)
content=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">try</span>:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">True</span>:
chunk = f.read(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> chunk:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">break</span>
content+=chunk
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">finally</span>:
f.close()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> content</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li></ul>


(3)每次读取一行
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

filepath=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'D:/data.txt'</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#文件路径</span>

f = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">open</span>(filepath, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"r"</span>)
content=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">try</span>:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> True:
<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">line</span> = f.readline()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> <span class="hljs-operator" style="box-sizing: border-box;">not</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">line</span>:
break
content+=<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">line</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">finally</span>:
f.<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">close</span>()
print content</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li></ul>


(4)一次读取所有的行
<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

filepath=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'D:/data.txt'</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#文件路径</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> open(filepath, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"r"</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> f:
txt_list = f.readlines()

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> i <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> txt_list:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> i,</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>


2、写文件
<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

filepath=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'D:/data1.txt'</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#文件路径</span>

<span class="hljs-operator" style="box-sizing: border-box;">with</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">open</span>(filepath, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"w"</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> f: <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#w会覆盖原来的文件,a会在文件末尾追加</span>
f.<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">write</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'1234'</span>)
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li></ul>


二、连接Mysql数据库

1、连接
<code class="hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

import MySQLdb

DB_URL=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'localhost'</span>
USER_NAME=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'root'</span>
PASSWD=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'1234'</span>
DB_NAME=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'test'</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 打开数据库连接</span>
db = MySQLdb.connect(DB_URL,USER_NAME,PASSWD,DB_NAME)

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 使用cursor()方法获取操作游标 </span>
cursor = db.cursor()

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 使用execute方法执行SQL语句</span>
cursor.execute(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"SELECT VERSION()"</span>)

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 使用 fetchone() 方法获取一条数据库。</span>
data = cursor.fetchone()

print <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Database version : %s "</span> % data

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 关闭数据库连接</span>
db.close()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li></ul>


2、创建表
<code class="hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

import MySQLdb

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 打开数据库连接</span>
db = MySQLdb.connect(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"localhost"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testuser"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"test123"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"TESTDB"</span> )

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 使用cursor()方法获取操作游标 </span>
cursor = db.cursor()

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 如果数据表已经存在使用 execute() 方法删除表。</span>
cursor.execute(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"DROP TABLE IF EXISTS EMPLOYEE"</span>)

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 创建数据表SQL语句</span>
sql = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""CREATE TABLE EMPLOYEE (
FIRST_NAME  CHAR(20) NOT NULL,
LAST_NAME  CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""</span>

cursor.execute(sql)

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 关闭数据库连接</span>
db.close()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li></ul>


3、插入
<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> MySQLdb

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 打开数据库连接</span>
db = MySQLdb.connect(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"localhost"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testuser"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"test123"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"TESTDB"</span> )

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 使用cursor()方法获取操作游标 </span>
cursor = db.cursor()

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># SQL 插入语句</span>
sql = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"""INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">try</span>:
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行sql语句</span>
cursor.execute(sql)
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 提交到数据库执行</span>
db.commit()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">except</span>:
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># Rollback in case there is any error</span>
db.rollback()

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 关闭数据库连接</span>
db.close()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li></ul>


4、查询
<code class="hljs perl has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

import MySQLdb

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 打开数据库连接</span>
db = MySQLdb.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">connect</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"localhost"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testuser"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"test123"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"TESTDB"</span> )

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 使用cursor()方法获取操作游标 </span>
cursor = db.cursor()

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># SQL 查询语句</span>
sql = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"SELECT * FROM EMPLOYEE \
WHERE INCOME > '<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%d</span>'"</span> % (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span>)
try:
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行SQL语句</span>
cursor.execute(sql)
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 获取所有记录列表</span>
results = cursor.fetchall()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> row in results:
fname = row[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>]
lname = row[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>]
age = row[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>]
sex = row[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>]
income = row[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>]
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 打印结果</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"fname=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%s</span>,lname=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%s</span>,age=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%d</span>,sex=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%s</span>,income=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%d</span>"</span> % \
(fname, lname, age, sex, income )
except:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Error: unable to fecth data"</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 关闭数据库连接</span>
db.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">close</span>()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li></ul>


5、更新
<code class="hljs perl has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#!/usr/bin/python</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># -*- coding: UTF-8 -*-</span>

import MySQLdb

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 打开数据库连接</span>
db = MySQLdb.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">connect</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"localhost"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testuser"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"test123"</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"TESTDB"</span> )

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 使用cursor()方法获取操作游标 </span>
cursor = db.cursor()

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># SQL 更新语句</span>
sql = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">%c</span>'"</span> % (<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'M'</span>)
try:
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行SQL语句</span>
cursor.execute(sql)
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 提交到数据库执行</span>
db.commit()
except:
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 发生错误时回滚</span>
db.rollback()

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 关闭数据库连接</span>
db.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">close</span>()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li></ul>


三、Socket

1、服务器
<code class="hljs perl has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">from <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">socket</span> import *
from <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">time</span> import ctime

HOST = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">''</span>
PORT = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">21568</span>
BUFSIZ = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>
ADDR = (HOST, PORT)

tcpSerSock = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">socket</span>(AF_INET, SOCK_STREAM)
tcpSerSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">bind</span>(ADDR)
tcpSerSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">listen</span>(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>)

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> True:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'waiting for connection...'</span>
tcpCliSock, addr = tcpSerSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">accept</span>()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'...connected from:'</span>, addr

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> True:
try:
data = tcpCliSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">recv</span>(BUFSIZ)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'<'</span>, data
tcpCliSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">send</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'[%s] %s'</span> % (ctime(), data))
except:
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'disconnect from:'</span>, addr
tcpCliSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">close</span>()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">break</span>
tcpSerSock.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">close</span>()</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li></ul>


2、客户端
<code class="hljs haskell has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-title" style="box-sizing: border-box;">from</span> socket <span class="hljs-import" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> *</span>

<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">HOST</span> = 'localhost'
<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">PORT</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">21568</span>
<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">BUFSIZ</span> = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>
<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">ADDR</span> = (<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">HOST</span>, <span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">PORT</span>)

<span class="hljs-title" style="box-sizing: border-box;">tcpCliSock</span> = socket(<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">AF_INET</span>, <span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">SOCK_STREAM</span>)
<span class="hljs-title" style="box-sizing: border-box;">tcpCliSock</span>.connect(<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">ADDR</span>)

<span class="hljs-title" style="box-sizing: border-box;">try</span>:
while <span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">True</span>:
<span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span> = raw_input<span class="hljs-container" style="box-sizing: border-box;">('>')</span></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> <span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span> == 'close':</span>
break
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> not <span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span>:</span>
continue
tcpCliSock.send(<span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span>)  </span>
<span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span> = tcpCliSock.recv<span class="hljs-container" style="box-sizing: border-box;">(<span class="hljs-type" style="box-sizing: border-box; color: rgb(102, 0, 102);">BUFSIZ</span>)</span>  </span>
print <span class="hljs-typedef" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">data</span></span>
<span class="hljs-title" style="box-sizing: border-box;">except</span>:
tcpCliSock.close()  </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul>


四、多线程
<code class="hljs python has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> time, threading

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 新线程执行的代码:</span>
<span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">def</span> <span class="hljs-title" style="box-sizing: border-box;">loop</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>:</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'thread %s is running...'</span> % threading.current_thread().name
n = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> n < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>:
n = n + <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'thread %s >>> %s'</span> % (threading.current_thread().name, n)
time.sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'thread %s ended.'</span> % threading.current_thread().name

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'thread %s is running...'</span> % threading.current_thread().name
t = threading.Thread(target=loop, name=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'LoopThread'</span>)
t.start()
t.join()
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">print</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'thread %s ended.'</span> % threading.current_thread().name</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li></ul>


还请大家积极补充!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: