﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大漠驼铃-随笔分类-Python</title><link>http://www.blogjava.net/nkjava/category/47980.html</link><description>置身浩瀚的沙漠，方向最为重要，希望此blog能向大漠驼铃一样，给我方向和指引。
EJB/JPA/JSF/Struts/Spring/Hibernate/Perl/Shell/C/Java
</description><language>zh-cn</language><lastBuildDate>Sun, 14 Aug 2011 08:26:30 GMT</lastBuildDate><pubDate>Sun, 14 Aug 2011 08:26:30 GMT</pubDate><ttl>60</ttl><item><title>python 判断 null</title><link>http://www.blogjava.net/nkjava/archive/2011/08/14/356482.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sun, 14 Aug 2011 00:47:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/08/14/356482.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/356482.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/08/14/356482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/356482.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/356482.html</trackback:ping><description><![CDATA[<div>if not result2 is&nbsp; None :</div><br /><br />if result is None<br /><br />注意是大写<img src ="http://www.blogjava.net/nkjava/aggbug/356482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-08-14 08:47 <a href="http://www.blogjava.net/nkjava/archive/2011/08/14/356482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python 连接 Mysql</title><link>http://www.blogjava.net/nkjava/archive/2011/08/14/356481.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Sun, 14 Aug 2011 00:46:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/08/14/356481.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/356481.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/08/14/356481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/356481.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/356481.html</trackback:ping><description><![CDATA[连接Mysql<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#coding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">utf</span><span style="color: #000000; ">-</span><span style="color: #000000; ">8</span><span style="color: #000000; "><br /><br />#MySQLdb&nbsp;示例<br />#<br />##################################<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;MySQLdb<br /><br />#建立和数据库系统的连接<br />conn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;MySQLdb.connect(host</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">localhost</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;user</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">root</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,passwd</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">longforfreedom</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br /><br />#获取操作游标<br />cursor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;conn.cursor()<br />#执行SQL,创建一个数据库.<br />cursor.execute(</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">create&nbsp;database&nbsp;python&nbsp;</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">)<br /><br />#关闭连接，释放资源<br />cursor.close();</span></div>插入数据、批量插入数据<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#coding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">utf</span><span style="color: #000000; ">-</span><span style="color: #000000; ">8</span><span style="color: #000000; "><br />###################################<br />#&nbsp;@author&nbsp;migle<br />#&nbsp;@date&nbsp;</span><span style="color: #000000; ">2010</span><span style="color: #000000; ">-</span><span style="color: #000000; ">01</span><span style="color: #000000; ">-</span><span style="color: #000000; ">17</span><span style="color: #000000; "><br />##################################<br />#MySQLdb&nbsp;示例<br />#<br />##################################<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;MySQLdb<br /><br />#建立和数据库系统的连接<br />conn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;MySQLdb.connect(host</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">localhost</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;user</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">root</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,passwd</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">21ccvn</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br /><br />#获取操作游标<br />cursor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;conn.cursor()<br />#执行SQL,创建一个数据库.<br />cursor.execute(</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">create&nbsp;database&nbsp;if&nbsp;not&nbsp;exists&nbsp;21ccvn</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">)<br /><br />#选择数据库<br />conn.select_db(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">21ccvn</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />#执行SQL,创建一个数据表.<br />cursor.execute(</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">create&nbsp;table&nbsp;21ccvn(id&nbsp;int,&nbsp;info&nbsp;varchar(100))&nbsp;</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">)<br /><br />value&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">inserted&nbsp;?</span><span style="color: #000000; ">"</span><span style="color: #000000; ">];<br /><br />#插入一条记录<br />cursor.execute(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">insert&nbsp;into&nbsp;test&nbsp;values(%s,%s)</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,value);<br /><br />values</span><span style="color: #000000; ">=</span><span style="color: #000000; ">[]<br /><br /><br />#生成插入参数值<br /></span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;i&nbsp;in&nbsp;range(</span><span style="color: #000000; ">20</span><span style="color: #000000; ">):<br />&nbsp;&nbsp;&nbsp;&nbsp;values.append((i,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">Hello&nbsp;mysqldb,&nbsp;I&nbsp;am&nbsp;recoder&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;str(i)))<br />#插入多条记录<br /><br />cursor.executemany(</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">insert&nbsp;into&nbsp;test&nbsp;values(%s,%s)&nbsp;</span><span style="color: #000000; ">"""</span><span style="color: #000000; ">,values);<br /><br />#关闭连接，释放资源<br />cursor.close();</span></div>查询，获取一个，获取多个，获取所有记录数<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#coding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">utf</span><span style="color: #000000; ">-</span><span style="color: #000000; ">8</span><span style="color: #000000; "><br /><br />#<br />#&nbsp;MySQLdb&nbsp;查询<br />#<br />#######################################<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;MySQLdb<br /><br />conn&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;MySQLdb.connect(host</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">localhost</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;user</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">root</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;passwd</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">longforfreedom</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,db</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'21ccvn</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br /><br />cursor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;conn.cursor()<br /><br />count&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;cursor.execute(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">select&nbsp;*&nbsp;from&nbsp;test</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br /><br />print&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">总共有&nbsp;%s&nbsp;条记录</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,count<br /><br />#获取一条记录,每条记录做为一个元组返回<br />print&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">只获取一条记录:</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />result&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;cursor.fetchone();<br />print&nbsp;result<br />#print&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">ID:&nbsp;%s&nbsp;&nbsp;&nbsp;info:&nbsp;%s</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;(result[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">],result[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])<br />print&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">ID:&nbsp;%s&nbsp;&nbsp;&nbsp;info:&nbsp;%s</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">%</span><span style="color: #000000; ">&nbsp;result&nbsp;<br /><br />#获取5条记录，注意由于之前执行有了fetchone()，所以游标已经指到第二条记录了，也就是从第二条开始的所有记录<br />print&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">只获取5条记录:</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />results&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;cursor.fetchmany(</span><span style="color: #000000; ">5</span><span style="color: #000000; ">)<br /></span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;r&nbsp;in&nbsp;results:<br />&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;r<br /><br />print&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">获取所有结果:</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />#重置游标位置，</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,为偏移量，mode＝absolute&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;relative,默认为relative,<br />cursor.scroll(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,mode</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'</span><span style="color: #000000; ">absolute</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)<br />#获取所有结果<br />results&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;cursor.fetchall()<br /></span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;r&nbsp;in&nbsp;results:<br />&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;r<br />conn.close()</span></div><img src ="http://www.blogjava.net/nkjava/aggbug/356481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-08-14 08:46 <a href="http://www.blogjava.net/nkjava/archive/2011/08/14/356481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python的time和date处理</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345725.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345725.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345725.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345725.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345725.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345725.html</trackback:ping><description><![CDATA[<p>内置模块time包含很多与时间相关函数。我们可通过它获得当前的时间和格式化时间输出。</p>
<p>time()，以浮点形式返回自Linux新世纪以来经过的秒数。在linux中，00:00:00 UTC, January 1, 1970是新**49**的开始。</p>
<br />
strftime可以用来获得当前时间，可以将时间格式化为字符串等等，还挺方便的。但是需要注意的是获得的时间是服务器的时间，注意时区问题，比如gae撒谎那个的时间就是格林尼治时间的0时区，需要自己转换。<br />
<br />
strftime（）函数将时间格式化<br />
我们可以使用strftime（）函数将时间格式化为我们想要的格式。它的原型如下：<br />
<br />
size_t strftime(<br />
char *strDest,<br />
size_t maxsize,<br />
const char *format,<br />
const struct tm *timeptr<br />
);<br />
<br />
我们可以根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中，最多向strDest中存放maxsize个字符。该函数返回向strDest指向的字符串中放置的字符数。<br />
<br />
strftime使时间格式化。python的strftime格式是C库支持的时间格式的真子集。<br />
<br />
　　%a 星期几的简写 Weekday name, abbr.<br />
　　%A 星期几的全称 Weekday name, full<br />
　　%b 月分的简写 Month name, abbr.<br />
　　%B 月份的全称 Month name, full<br />
　　%c 标准的日期的时间串 Complete date and time representation<br />
　　%d 十进制表示的每月的第几天 Day of the month<br />
　　%H 24小时制的小时 Hour (24-hour clock)<br />
　　%I 12小时制的小时 Hour (12-hour clock)<br />
　　%j 十进制表示的每年的第几天 Day of the year<br />
　　%m 十进制表示的月份 Month number<br />
　　%M 十时制表示的分钟数 Minute number<br />
　　%S 十进制的秒数 Second number<br />
　　%U 第年的第几周，把星期日做为第一天（值从0到53）Week number (Sunday first weekday)<br />
　　%w 十进制表示的星期几（值从0到6，星期天为0）weekday number<br />
　　%W 每年的第几周，把星期一做为第一天（值从0到53） Week number (Monday first weekday)<br />
　　%x 标准的日期串 Complete date representation (e.g. 13/01/08)<br />
　　%X 标准的时间串 Complete time representation (e.g. 17:02:10)<br />
　　%y 不带世纪的十进制年份（值从0到99）Year number within century<br />
　　%Y 带世纪部分的十制年份 Year number<br />
　　%z，%Z 时区名称，如果不能得到时区名称则返回空字符。Name of time zone<br />
　　%% 百分号
<table style="border-collapse: collapse" border="1" cellspacing="0" bordercolor="#999999" cellpadding="0" width="95%" bgcolor="#f1f1f1">
    <tbody>
        <tr>
            <td>
            <p style="line-height: 150%; margin: 5px"><code><span style="color: rgb(0,0,0)">1<span style="color: rgb(0,0,204)">.</span> # handling date<span style="color: rgb(0,0,204)">/</span>time data<br />
            &nbsp;&nbsp;&nbsp;2<span style="color: rgb(0,0,204)">.</span> # Python23 tested vegaseat 3<span style="color: rgb(0,0,204)">/</span>6<span style="color: rgb(0,0,204)">/</span>2005<br />
            &nbsp;&nbsp;&nbsp;3<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;&nbsp;4<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">import</span> time<br />
            &nbsp;&nbsp;&nbsp;5<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;&nbsp;6<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"List the functions within module time:"</span><br />
            &nbsp;&nbsp;&nbsp;7<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">for</span> funk <span style="color: rgb(0,0,255)">in</span> dir<span style="color: rgb(0,0,204)">(</span>time<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">:</span><br />
            &nbsp;&nbsp;&nbsp;8<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> funk<br />
            &nbsp;&nbsp;&nbsp;9<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;10<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> time<span style="color: rgb(0,0,204)">.</span>time<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"seconds since 1/1/1970 00:00:00"</span><br />
            &nbsp;&nbsp;11<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> time<span style="color: rgb(0,0,204)">.</span>time<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">/</span><span style="color: rgb(0,0,204)">(</span>60<span style="color: rgb(0,0,204)">*</span>60<span style="color: rgb(0,0,204)">*</span>24<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"days since 1/1/1970"</span><br />
            &nbsp;&nbsp;12<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;13<span style="color: rgb(0,0,204)">.</span> # time<span style="color: rgb(0,0,204)">.</span>clock<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span> gives wallclock seconds<span style="color: rgb(0,0,204)">,</span> accuracy better than 1 ms<br />
            &nbsp;&nbsp;14<span style="color: rgb(0,0,204)">.</span> # time<span style="color: rgb(0,0,204)">.</span>clock<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span> <span style="color: rgb(0,0,255)">is</span> <span style="color: rgb(0,0,255)">for</span> windows<span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>time<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span> <span style="color: rgb(0,0,255)">is</span> more portable<br />
            &nbsp;&nbsp;15<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Using time.clock() = "</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>clock<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"seconds since first call to clock()"</span><br />
            &nbsp;&nbsp;16<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nTiming a 1 million loop 'for loop' ..."</span><br />
            &nbsp;&nbsp;17<span style="color: rgb(0,0,204)">.</span> start <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>clock<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;18<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">for</span> x <span style="color: rgb(0,0,255)">in</span> range<span style="color: rgb(0,0,204)">(</span>1000000<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">:</span><br />
            &nbsp;&nbsp;19<span style="color: rgb(0,0,204)">.</span> y <span style="color: rgb(0,0,204)">=</span> x # do something<br />
            &nbsp;&nbsp;20<span style="color: rgb(0,0,204)">.</span> end <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>clock<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;21<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time elapsed = "</span><span style="color: rgb(0,0,204)">,</span> end <span style="color: rgb(0,0,204)">-</span> start<span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"seconds"</span><br />
            &nbsp;&nbsp;22<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;23<span style="color: rgb(0,0,204)">.</span> # create a tuple of local time data<br />
            &nbsp;&nbsp;24<span style="color: rgb(0,0,204)">.</span> timeHere <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;25<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nA tuple of local date/time data using time.localtime():"</span><br />
            &nbsp;&nbsp;26<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"(year,month,day,hour,min,sec,weekday(Monday=0),yearday,dls-flag)"</span><br />
            &nbsp;&nbsp;27<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> timeHere<br />
            &nbsp;&nbsp;28<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;29<span style="color: rgb(0,0,204)">.</span> # extract a more readable date<span style="color: rgb(0,0,204)">/</span>time <span style="color: rgb(0,0,255)">from</span> the tuple<br />
            &nbsp;&nbsp;30<span style="color: rgb(0,0,204)">.</span> # eg<span style="color: rgb(0,0,204)">.</span> Sat Mar 05 22<span style="color: rgb(0,0,204)">:</span>51<span style="color: rgb(0,0,204)">:</span>55 2005<br />
            &nbsp;&nbsp;31<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nUsing time.asctime(time.localtime()):"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>asctime<span style="color: rgb(0,0,204)">(</span>time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;32<span style="color: rgb(0,0,204)">.</span> # the same results<br />
            &nbsp;&nbsp;33<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nUsing time.ctime(time.time()):"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>ctime<span style="color: rgb(0,0,204)">(</span>time<span style="color: rgb(0,0,204)">.</span>time<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;34<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nOr using time.ctime():"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>ctime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;35<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;36<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"\nUsing strftime():"</span><br />
            &nbsp;&nbsp;37<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Day and Date:"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%a %m/%d/%y"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;38<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Day, Date :"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%A, %B %d, %Y"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;39<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time (12hr) :"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%I:%M:%S %p"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;40<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time (24hr) :"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%H:%M:%S"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;41<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"DayMonthYear:"</span><span style="color: rgb(0,0,204)">,</span>time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%d%b%Y"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;42<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;43<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span><br />
            &nbsp;&nbsp;44<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;45<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Start a line with this date-time stamp and it will sort:"</span><span style="color: rgb(0,0,204)">,</span><span style="color: rgb(0,0,204)">\</span><br />
            &nbsp;&nbsp;46<span style="color: rgb(0,0,204)">.</span> time<span style="color: rgb(0,0,204)">.</span>strftime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"%Y/%m/%d %H:%M:%S"</span><span style="color: rgb(0,0,204)">,</span> time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;47<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;48<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span><br />
            &nbsp;&nbsp;49<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;50<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">def</span> getDayOfWeek<span style="color: rgb(0,0,204)">(</span>dateString<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">:</span><br />
            &nbsp;&nbsp;51<span style="color: rgb(0,0,204)">.</span> # day of week <span style="color: rgb(0,0,204)">(</span>Monday <span style="color: rgb(0,0,204)">=</span> 0<span style="color: rgb(0,0,204)">)</span> of a given month<span style="color: rgb(0,0,204)">/</span>day<span style="color: rgb(0,0,204)">/</span>year<br />
            &nbsp;&nbsp;52<span style="color: rgb(0,0,204)">.</span> t1 <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>strptime<span style="color: rgb(0,0,204)">(</span>dateString<span style="color: rgb(0,0,204)">,</span><span style="color: rgb(255,0,255)">"%m/%d/%Y"</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;53<span style="color: rgb(0,0,204)">.</span> # year <span style="color: rgb(0,0,255)">in</span> time_struct t1 can <span style="color: rgb(0,0,255)">not</span> go below 1970 <span style="color: rgb(0,0,204)">(</span>start of epoch<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">!</span><br />
            &nbsp;&nbsp;54<span style="color: rgb(0,0,204)">.</span> t2 <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>mktime<span style="color: rgb(0,0,204)">(</span>t1<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;55<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">return</span><span style="color: rgb(0,0,204)">(</span>time<span style="color: rgb(0,0,204)">.</span>localtime<span style="color: rgb(0,0,204)">(</span>t2<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">[</span>6<span style="color: rgb(0,0,204)">]</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;56<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;57<span style="color: rgb(0,0,204)">.</span> Weekday <span style="color: rgb(0,0,204)">=</span> <span style="color: rgb(0,0,204)">[</span><span style="color: rgb(255,0,255)">'Monday'</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">'Tuesday'</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">'Wednesday'</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">'Thursday'</span><span style="color: rgb(0,0,204)">,</span><br />
            &nbsp;&nbsp;58<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(255,0,255)">'Friday'</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">'Saturday'</span><span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">'Sunday'</span><span style="color: rgb(0,0,204)">]</span><br />
            &nbsp;&nbsp;59<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;60<span style="color: rgb(0,0,204)">.</span> # sorry about the limitations<span style="color: rgb(0,0,204)">,</span> stay above 01<span style="color: rgb(0,0,204)">/</span>01<span style="color: rgb(0,0,204)">/</span>1970<br />
            &nbsp;&nbsp;61<span style="color: rgb(0,0,204)">.</span> # more exactly 01<span style="color: rgb(0,0,204)">/</span>01<span style="color: rgb(0,0,204)">/</span>1970 at 0 UT <span style="color: rgb(0,0,204)">(</span>midnight Greenwich<span style="color: rgb(0,0,204)">,</span> England<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;62<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"11/12/1970 was a"</span><span style="color: rgb(0,0,204)">,</span> Weekday<span style="color: rgb(0,0,204)">[</span>getDayOfWeek<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"11/12/1970"</span><span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">]</span><br />
            &nbsp;&nbsp;63<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;64<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span><br />
            &nbsp;&nbsp;65<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;66<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Calculate difference between two times (12 hour format) of a day:"</span><br />
            &nbsp;&nbsp;67<span style="color: rgb(0,0,204)">.</span> time1 <span style="color: rgb(0,0,204)">=</span> raw_input<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"Enter first time (format 11:25:00AM or 03:15:30PM): "</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;68<span style="color: rgb(0,0,204)">.</span> # pick some plausible date<br />
            &nbsp;&nbsp;69<span style="color: rgb(0,0,204)">.</span> timeString1 <span style="color: rgb(0,0,204)">=</span> <span style="color: rgb(255,0,255)">"03/06/05 "</span> <span style="color: rgb(0,0,204)">+</span> time1<br />
            &nbsp;&nbsp;70<span style="color: rgb(0,0,204)">.</span> # create a time tuple <span style="color: rgb(0,0,255)">from</span> this time string format eg<span style="color: rgb(0,0,204)">.</span> 03<span style="color: rgb(0,0,204)">/</span>06<span style="color: rgb(0,0,204)">/</span>05 11<span style="color: rgb(0,0,204)">:</span>22<span style="color: rgb(0,0,204)">:</span>00AM<br />
            &nbsp;&nbsp;71<span style="color: rgb(0,0,204)">.</span> timeTuple1 <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>strptime<span style="color: rgb(0,0,204)">(</span>timeString1<span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"%m/%d/%y %I:%M:%S%p"</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;72<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;73<span style="color: rgb(0,0,204)">.</span> #<span style="color: rgb(0,0,255)">print</span> timeTuple1 # test eg<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,204)">(</span>2005<span style="color: rgb(0,0,204)">,</span> 3<span style="color: rgb(0,0,204)">,</span> 6<span style="color: rgb(0,0,204)">,</span> 11<span style="color: rgb(0,0,204)">,</span> 22<span style="color: rgb(0,0,204)">,</span> 0<span style="color: rgb(0,0,204)">,</span> 5<span style="color: rgb(0,0,204)">,</span> 91<span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(0,0,204)">-</span>1<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;74<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;75<span style="color: rgb(0,0,204)">.</span> time2 <span style="color: rgb(0,0,204)">=</span> raw_input<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(255,0,255)">"Enter second time (format 11:25:00AM or 03:15:30PM): "</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;76<span style="color: rgb(0,0,204)">.</span> # use same date to stay <span style="color: rgb(0,0,255)">in</span> same day<br />
            &nbsp;&nbsp;77<span style="color: rgb(0,0,204)">.</span> timeString2 <span style="color: rgb(0,0,204)">=</span> <span style="color: rgb(255,0,255)">"03/06/05 "</span> <span style="color: rgb(0,0,204)">+</span> time2<br />
            &nbsp;&nbsp;78<span style="color: rgb(0,0,204)">.</span> timeTuple2 <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>strptime<span style="color: rgb(0,0,204)">(</span>timeString2<span style="color: rgb(0,0,204)">,</span> <span style="color: rgb(255,0,255)">"%m/%d/%y %I:%M:%S%p"</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;79<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;80<span style="color: rgb(0,0,204)">.</span> # mktime<span style="color: rgb(0,0,204)">(</span><span style="color: rgb(0,0,204)">)</span> gives seconds since epoch 1<span style="color: rgb(0,0,204)">/</span>1<span style="color: rgb(0,0,204)">/</span>1970 00<span style="color: rgb(0,0,204)">:</span>00<span style="color: rgb(0,0,204)">:</span>00<br />
            &nbsp;&nbsp;81<span style="color: rgb(0,0,204)">.</span> time_difference <span style="color: rgb(0,0,204)">=</span> time<span style="color: rgb(0,0,204)">.</span>mktime<span style="color: rgb(0,0,204)">(</span>timeTuple2<span style="color: rgb(0,0,204)">)</span> <span style="color: rgb(0,0,204)">-</span> time<span style="color: rgb(0,0,204)">.</span>mktime<span style="color: rgb(0,0,204)">(</span>timeTuple1<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;82<span style="color: rgb(0,0,204)">.</span> #<span style="color: rgb(0,0,255)">print</span> type<span style="color: rgb(0,0,204)">(</span>time_difference<span style="color: rgb(0,0,204)">)</span> # test <span style="color: rgb(0,0,204)">&lt;</span>type <span style="color: rgb(255,0,255)">'float'</span><span style="color: rgb(0,0,204)">&gt;</span><br />
            &nbsp;&nbsp;83<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time difference = %d seconds"</span> <span style="color: rgb(0,0,204)">%</span> int<span style="color: rgb(0,0,204)">(</span>time_difference<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;84<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time difference = %0.1f minutes"</span> <span style="color: rgb(0,0,204)">%</span> <span style="color: rgb(0,0,204)">(</span>time_difference<span style="color: rgb(0,0,204)">/</span>60<span style="color: rgb(0,0,204)">.</span>0<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;85<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Time difference = %0.2f hours"</span> <span style="color: rgb(0,0,204)">%</span> <span style="color: rgb(0,0,204)">(</span>time_difference<span style="color: rgb(0,0,204)">/</span><span style="color: rgb(0,0,204)">(</span>60<span style="color: rgb(0,0,204)">.</span>0<span style="color: rgb(0,0,204)">*</span>60<span style="color: rgb(0,0,204)">)</span><span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;86<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;87<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span><br />
            &nbsp;&nbsp;88<span style="color: rgb(0,0,204)">.</span> <br />
            &nbsp;&nbsp;89<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"Wait one and a half seconds!"</span><br />
            &nbsp;&nbsp;90<span style="color: rgb(0,0,204)">.</span> time<span style="color: rgb(0,0,204)">.</span>sleep<span style="color: rgb(0,0,204)">(</span>1<span style="color: rgb(0,0,204)">.</span>5<span style="color: rgb(0,0,204)">)</span><br />
            &nbsp;&nbsp;91<span style="color: rgb(0,0,204)">.</span> <span style="color: rgb(0,0,255)">print</span> <span style="color: rgb(255,0,255)">"The end!"</span></span></code></p>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/nkjava/aggbug/345725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:23 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python IO</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345724.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345724.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345724.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345724.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345724.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345724.html</trackback:ping><description><![CDATA[<div class="blog_content">
<p><span>
<h3 style="line-height: normal"><span style="line-height: normal; font-size: small">1.open</span></h3>
<p style="line-height: normal">使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。</p>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file_object&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">thefile.txt</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">try</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; all_the_text&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;file_object.read( )<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">finally</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; file_object.close( )</span> </div>
<p style="line-height: normal"><br style="line-height: normal" />
注：不能把open语句放在try块里，因为当打开文件出现异常时，文件对象file_object无法执行close()方法。</p>
<h3 style="line-height: normal"><span style="line-height: normal; font-size: small">2.读文件</span></h3>
<h4 style="line-height: normal">读文本文件</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">input&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">r</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,128,0)">#</span><span style="line-height: normal; color: rgb(0,128,0)">第二个参数默认为r</span><span style="line-height: normal; color: rgb(0,128,0)"><br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,0)">input&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
</span></div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">读二进制文件</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">input&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">rb</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">读取所有内容</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file_object&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">thefile.txt</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">try</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; all_the_text&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;file_object.read( )<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">finally</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; file_object.close( )</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">读固定字节</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file_object&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">abinfile</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">rb</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">try</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="line-height: normal; color: rgb(0,0,255)">while</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;True:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chunk&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;file_object.read(</span><span style="line-height: normal; color: rgb(0,0,0)">100</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="line-height: normal; color: rgb(0,0,255)">if</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;</span><span style="line-height: normal; color: rgb(0,0,255)">not</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;chunk:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="line-height: normal; color: rgb(0,0,255)">break</span><span style="line-height: normal; color: rgb(0,0,0)"><br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do_something_with(chunk)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">finally</span><span style="line-height: normal; color: rgb(0,0,0)">:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; file_object.close( )</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">读每行</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">list_of_all_the_lines&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;file_object.readlines( )</span> </div>
<p style="line-height: normal"><br style="line-height: normal" />
如果文件是文本文件，还可以直接遍历文件对象获取每行：</p>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,255)">for</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;line&nbsp;</span><span style="line-height: normal; color: rgb(0,0,255)">in</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;file_object:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp; process line</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h3 style="line-height: normal"><span style="line-height: normal; font-size: small">3.写文件</span></h3>
<h4 style="line-height: normal">写文本文件</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">output&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">w</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">写二进制文件</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">output&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">wb</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">追加写文件</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">output&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">data</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">w+</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">写数据</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file_object&nbsp;</span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">thefile.txt</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">,&nbsp;</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">w</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />file_object.write(all_the_text)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />file_object.close( )</span> </div>
<p style="line-height: normal">&nbsp;</p>
<h4 style="line-height: normal">写入多行</h4>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: normal; background-color: rgb(238,238,238); padding-left: 4px; width: 778px; padding-right: 5px; font-family: Arial; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"><img style="line-height: normal" alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file_object.writelines(list_of_text_strings)</span> </div>
<p style="line-height: normal"><br style="line-height: normal" />
注意，调用writelines写入多行在性能上会比使用write一次性写入要高。</p>
<p style="line-height: normal">在处理日志文件的时候，常常会遇到这样的情况：日志文件巨大，不可能一次性把整个文件读入到内存中进行处理，例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件，我们可能希望每次只处理其中 200MB 的内容。<br style="line-height: normal" />
在 Python 中，内置的 File 对象直接提供了一个 readlines(sizehint) 函数来完成这样的事情。以下面的代码为例：</p>
<div style="padding-bottom: 4px; line-height: normal; background-color: rgb(230,230,230); padding-left: 5.4pt; width: 754px; padding-right: 5.4pt; font-family: Arial; background-position: 0% 50%; font-size: 12px; padding-top: 4px">
<div style="line-height: normal; font-family: Arial; font-size: 12px">
<pre><img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /><span style="line-height: normal; color: rgb(0,0,0)">file </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> open(</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">test.log</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">, </span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(128,0,0)">r</span><span style="line-height: normal; color: rgb(128,0,0)">'</span><span style="line-height: normal; color: rgb(0,0,0)">)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />sizehint </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> </span><span style="line-height: normal; color: rgb(0,0,0)">209715200</span><span style="line-height: normal; color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;</span><span style="line-height: normal; color: rgb(0,128,0)">#</span><span style="line-height: normal; color: rgb(0,128,0)"> 200M</span><span style="line-height: normal; color: rgb(0,128,0)"><br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,0)">position </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> 0<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />lines </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> file.readlines(sizehint)<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" /></span><span style="line-height: normal; color: rgb(0,0,255)">while</span><span style="line-height: normal; color: rgb(0,0,0)"> </span><span style="line-height: normal; color: rgb(0,0,255)">not</span><span style="line-height: normal; color: rgb(0,0,0)"> file.tell() </span><span style="line-height: normal; color: rgb(0,0,0)">-</span><span style="line-height: normal; color: rgb(0,0,0)"> position </span><span style="line-height: normal; color: rgb(0,0,0)">&lt;</span><span style="line-height: normal; color: rgb(0,0,0)"> 0:<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;   position </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> file.tell()<br style="line-height: normal" />
<img style="line-height: normal" alt="" align="top" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;   lines </span><span style="line-height: normal; color: rgb(0,0,0)">=</span><span style="line-height: normal; color: rgb(0,0,0)"> file.readlines(sizehint)</span></pre>
<div><br />
</div>
<div>
<div><br />
</div>
<div><br />
</div>
<div>每次调用 readlines(sizehint) 函数，会返回大约 200MB 的数据，而且所返回的必然都是完整的行数据，大多数情况下，返回的数据的字节数会稍微比 sizehint 指定的值大一点（除最后一次调用 readlines(sizehint) 函数的时候）。通常情况下，Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍。</div>
<div><br />
</div>
<div>file在python是一个特殊的类型，它用于在python程序中对外部的文件进行操作。在python中一切都是对象，file也不例外，file有file的方法和属性。下面先来看如何创建一个file对象：</div>
<div><br />
</div>
<div>file(name[, mode[, buffering]])</div>
<div>file()函数用于创建一个file对象，它有一个别名叫open()，可能更形象一些，它们是内置函数。来看看它的参数。它参数都是以字符串的形式传递的。name是文件的名字。</div>
<div>mode是打开的模式，可选的值为r w a U，分别代表读（默认） 写 添加 支持各种换行符的模式。用w或a模式打开文件的话，如果文件不存在，那么就自动创建。此外，用w模式打开一个已经存在的文件时，原有文件的内容会被清空，因为一开始文件的操作的标记是在文件的开头的，这时候进行写操作，无疑会把原有的内容给抹掉。由于历史的原因，换行符在不同的系统中有不同模式，比如在 unix中是一个\n，而在windows中是&#8216;\r\n&#8217;，用U模式打开文件，就是支持所有的换行模式，也就说&#8216;\r&#8217; '\n' '\r\n'都可表示换行，会有一个tuple用来存贮这个文件中用到过的换行符。不过，虽说换行有多种模式，读到python中统一用\n代替。在模式字符的后面，还可以加上+ b t这两种标识，分别表示可以对文件同时进行读写操作和用二进制模式、文本模式（默认）打开文件。</div>
<div>buffering如果为0表示不进行缓冲;如果为1表示进行&#8220;行缓冲&#8220;;如果是一个大于1的数表示缓冲区的大小，应该是以字节为单位的。</div>
<div><br />
</div>
<div>file对象有自己的属性和方法。先来看看file的属性。</div>
<div><br />
</div>
<div>closed #标记文件是否已经关闭，由close()改写</div>
<div>encoding #文件编码</div>
<div>mode #打开模式</div>
<div>name #文件名</div>
<div>newlines #文件中用到的换行模式，是一个tuple</div>
<div>softspace #boolean型，一般为0，据说用于print</div>
<div><br />
</div>
<div>file的读写方法：</div>
<div><br />
</div>
<div>F.read([size]) #size为读取的长度，以byte为单位</div>
<div>F.readline([size])&nbsp;</div>
<div>#读一行，如果定义了size，有可能返回的只是一行的一部分</div>
<div>F.readlines([size])&nbsp;</div>
<div>#把文件每一行作为一个list的一个成员，并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数，size是表示读取内容的总长，也就是说可能只读到文件的一部分。</div>
<div>F.write(str)&nbsp;</div>
<div>#把str写到文件中，write()并不会在str后加上一个换行符</div>
<div>F.writelines(seq)&nbsp;</div>
<div>#把seq的内容全部写到文件中。这个函数也只是忠实地写入，不会在每行后面加上任何东西。</div>
<div>file的其他方法：</div>
<div><br />
</div>
<div>F.close()&nbsp;</div>
<div>#关闭文件。python会在一个文件不用后自动关闭文件，不过这一功能没有保证，最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其进行操作会产生ValueError</div>
<div>F.flush()&nbsp;</div>
<div>#把缓冲区的内容写入硬盘</div>
<div>F.fileno()&nbsp;</div>
<div>#返回一个长整型的&#8221;文件标签&#8220;</div>
<div>F.isatty()&nbsp;</div>
<div>#文件是否是一个终端设备文件（unix系统中的）</div>
<div>F.tell()&nbsp;</div>
<div>#返回文件操作标记的当前位置，以文件的开头为原点</div>
<div>F.next()&nbsp;</div>
<div>#返回下一行，并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时，就是调用next()函数来实现遍历的。</div>
<div>F.seek(offset[,whence])&nbsp;</div>
<div>#将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的，一般为正数。但如果提供了whence参数就不一定了，whence可以为0表示从头开始计算，1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意，如果文件以a或a+的模式打开，每次进行写操作时，文件操作标记会自动返回到文件末尾。</div>
<div>F.truncate([size])&nbsp;</div>
<div>#把文件裁成规定的大小，默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大，依据系统的不同可能是不改变文件，也可能是用0把文件补到相应的大小，也可能是以一些随机的内容加上去。</div>
</div>
</div>
</div>
</span>
<p>&nbsp;</p>
</div>
<img src ="http://www.blogjava.net/nkjava/aggbug/345724.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:10 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345724.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python Mysql </title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345723.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:09:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345723.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345723.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345723.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345723.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">http:</span><span style="color: #000000">//</span><span style="color: #000000">www.kitebird.com</span><span style="color: #000000">/</span><span style="color: #000000">articles</span><span style="color: #000000">/</span><span style="color: #000000">pydbapi.html</span></div>
<p><a href="http://www.codegood.com/">http://www.codegood.com/</a>&nbsp; python mysql驱动下载大全<br />
<br />
<br />
the Python standard for database interfaces is the Python DB-API. Most Python database interfaces adhere to this standard.</p>
<p>You can choose the right database for your application. Python Database API supports a wide range of database servers:</p>
<ul>
    <li>GadFly
    <li>mSQL
    <li>MySQL
    <li>PostgreSQL
    <li>Microsoft SQL Server 2000
    <li>Informix
    <li>Interbase
    <li>Oracle
    <li>Sybase </li>
</ul>
<p>Here is the list of available Python databases interfaces:</p>
<table class="src" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre><a href="http://wiki.python.org/moin/DatabaseInterfaces" target="_blank">Python Database Interfaces and APIs</a>
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>You must download a separate DB API module for each database you need to access. For example, if you need to access an Oracle database as well as a MySQL database, you must download both the Oracle and the MySQL database modules.</p>
<p>The DB API provides a minimal standard for working with databases, using Python structures and syntax wherever possible. This API includes the following:</p>
<ul>
    <li>
    <p>Importing the api module.</p>
    <li>
    <p>Acquiring a connection with the database.</p>
    <li>
    <p>Issuing SQL statements and stored procedures.</p>
    <li>
    <p>Closing the connection</p>
    </li>
</ul>
<p>We would learn all the concepts using MySQL so let's talk about MySQLdb module only.</p>
<h1>What is MySQLdb?</h1>
<p>MySQLdb is an interface for connecting to a MySQL database server from Python. It implements the Python Database API v2.0, and is built on top of the MySQL C API.</p>
<h2>How do I install the MySQLdb?</h2>
<p>Before proceeding you make sure you have MySQLdb installed on your machine. Just type the following in your Python script and execute it:</p>
<table class="src" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>If it produces following result then it means MySQLdb module is not installed:</p>
<table class="src" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>Traceback (most recent call last):
            File "test.py", line 3, in &lt;module&gt;
            import MySQLdb
            ImportError: No module named MySQLdb
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>To install MySQLdb module, download it from <a href="http://sourceforge.net/projects/mysql-python" target="_blank">MySQLdb Download</a> page and proceed as follows:</p>
<table class="src" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>$ gunzip MySQL-python-1.2.2.tar.gz
            $ tar -xvf MySQL-python-1.2.2.tar
            $ cd MySQL-python-1.2.2
            $ python setup.py build
            $ python setup.py install
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p><strong>Note:</strong> Make sure you have root privilege to install above module.</p>
<h1>Database Connection:</h1>
<p>Before connecting to a MySQL database make sure followings:</p>
<ul>
    <li>
    <p>You have created a database TESTDB.</p>
    <li>
    <p>You have created a table EMPLOYEE in TESTDB.</p>
    <li>
    <p>This table is having fields FIRST_NAME, LAST_NAME, AGE, SEX and INCOME.</p>
    <li>
    <p>User ID "testuser" and password "test123" are set to access TESTDB</p>
    <li>
    <p>Python module MySQLdb is installed properly on your machine.</p>
    <li>
    <p>You have gone through MySQL tutorial to understand <a href="http://www.tutorialspoint.com/mysql/index.htm">MySQL Basics.</a></p>
    </li>
</ul>
<h2>Example:</h2>
<p>Following is the example of connecting with MySQL database "TESTDB"</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # execute SQL query using <em>execute()</em> method.
            cursor.execute("SELECT VERSION()")
            # Fetch a single row using <em>fetchone()</em> method.
            data = cursor.fetchone()
            print "Database version : %s " % data
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>While running this script, its producing following result at my Linux machine.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>Database version : 5.0.45
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>If a connection is established with the datasource then a Connection Object is returned and saved into <strong>db</strong> for further use otherwise <strong>db</strong> is set to None. Next <strong>db</strong> object is used to create a <strong>cursor</strong> object which in turn is used to execute SQL queries.</p>
<p>Finally before coming out it ensures that database connection is closed and resources are released.</p>
<h1>Creating Database Table:</h1>
<p>Once a database connection is established, we are ready to create tables or records into the database tables using <strong>execute</strong> method of the created cursor.</p>
<h2>Example:</h2>
<p>First let's create Database table EMPLOYEE:</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Drop table if it already exist using <em>execute()</em> method.
            cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
            # Create table as per requirement
            sql = """CREATE TABLE EMPLOYEE (
            FIRST_NAME  CHAR(20) NOT NULL,
            LAST_NAME  CHAR(20),
            AGE INT,
            SEX CHAR(1),
            INCOME FLOAT )"""
            cursor.execute(sql)
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>INSERT Operation:</h1>
<p>INSERT operation is required when you want to create your records into a database table.</p>
<h2>Example:</h2>
<p>Following is the example which executes SQL <em>INSERT</em> statement to create a record into EMPLOYEE table.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Prepare SQL query to INSERT a record into the database.
            sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
            LAST_NAME, AGE, SEX, INCOME)
            VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Commit your changes in the database
            db.commit()
            except:
            # Rollback in case there is any error
            db.rollback()
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>Above example can be written as follows to create SQL queries dynamically:</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Prepare SQL query to INSERT a record into the database.
            sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
            LAST_NAME, AGE, SEX, INCOME) \
            VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
            ('Mac', 'Mohan', 20, 'M', 2000)
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Commit your changes in the database
            db.commit()
            except:
            # Rollback in case there is any error
            db.rollback()
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h2>Example:</h2>
<p>Following code segment is another form of execute where you can pass parameters directly:</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>..................................
            user_id = "test123"
            password = "password"
            con.execute('insert into Login values("%s", "%s")' % \
            (user_id, password))
            ..................................
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>READ Operation:</h1>
<p>READ Operation on any databasse means to fetch some useful information from the database.</p>
<p>Once our database connection is established, we are ready to make a query into this database. We can use either <strong>fetchone()</strong> method to fetch single record or <strong>fetchall</strong> method to fetech multiple values from a database table.</p>
<ul>
    <li>
    <p><strong>fetchone():</strong> This method fetches the next row of a query result set. A result set is an object that is returned when a cursor object is used to query a table.</p>
    <li>
    <p><strong>fetchall():</strong> This method fetches all the rows in a result set. If some rows have already been extracted from the result set, the fetchall() method retrieves the remaining rows from the result set.</p>
    <li>
    <p><strong>rowcount:</strong> This is a read-only attribute and returns the number of rows that were affected by an execute() method.</p>
    </li>
</ul>
<h2>Example:</h2>
<p>Following is the procedure to query all the records from EMPLOYEE table having salary more than 1000.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Prepare SQL query to INSERT a record into the database.
            sql = "SELECT * FROM EMPLOYEE \
            WHERE INCOME &gt; '%d'" % (1000)
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Fetch all the rows in a list of lists.
            results = cursor.fetchall()
            for row in results:
            fname = row[0]
            lname = row[1]
            age = row[2]
            sex = row[3]
            income = row[4]
            # Now print fetched result
            print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
            (fname, lname, age, sex, income )
            except:
            print "Error: unable to fecth data"
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>This will produce following result:</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>fname=Mac, lname=Mohan, age=20, sex=M, income=2000
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>Update Operation:</h1>
<p>UPDATE Operation on any databasse means to update one or more records which are already available in the database. Following is the procedure to update all the records having SEX as 'M'. Here we will increase AGE of all the males by one year.</p>
<h2>Example:</h2>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Prepare SQL query to UPDATE required records
            sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
            WHERE SEX = '%c'" % ('M')
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Commit your changes in the database
            db.commit()
            except:
            # Rollback in case there is any error
            db.rollback()
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>DELETE Operation:</h1>
<p>DELETE operation is required when you want to delete some records from your database. Following is the procedure to delete all the records from EMPLOYEE where AGE is more than 20.</p>
<h2>Example:</h2>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>#!/usr/bin/python
            import MySQLdb
            # Open database connection
            db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )
            # prepare a cursor object using <em>cursor()</em> method
            cursor = db.cursor()
            # Prepare SQL query to DELETE required records
            sql = "DELETE FROM EMPLOYEE WHERE AGE &gt; '%d'" % (20)
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Commit your changes in the database
            db.commit()
            except:
            # Rollback in case there is any error
            db.rollback()
            # disconnect from server
            db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>Performing Transactions:</h1>
<p>Transactions are a mechanism that ensures data consistency. Transactions should have the following four properties:</p>
<ul>
    <li>
    <p><strong>Atomicity:</strong> Either a transaction completes or nothing happens at all.</p>
    <li>
    <p><strong>Consistency:</strong> A transaction must start in a consistent state and leave the system is a consistent state.</p>
    <li>
    <p><strong>Isolation:</strong> Intermediate results of a transaction are not visible outside the current transaction.</p>
    <li>
    <p><strong>Durability:</strong> Once a transaction was committed, the effects are persistent, even after a system failure.</p>
    </li>
</ul>
<p>The Python DB API 2.0 provides two methods to either <em>commit</em> or <em>rollback</em> a transaction.</p>
<h2>Example:</h2>
<p>You already have seen how we have implemented transations. Here is again similar example:</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre># Prepare SQL query to DELETE required records
            sql = "DELETE FROM EMPLOYEE WHERE AGE &gt; '%d'" % (20)
            try:
            # Execute the SQL command
            cursor.execute(sql)
            # Commit your changes in the database
            db.commit()
            except:
            # Rollback in case there is any error
            db.rollback()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>COMMIT Operation:</h1>
<p>Commit is the operation which gives a green signal to database to finalize the changes and after this operation no change can be reverted back.</p>
<p>Here is a simple example to call <strong>commit</strong> method.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>    db.commit()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>ROLLBACK Operation:</h1>
<p>If you are not satisfied with one or more of the changes and you want to revert back those changes completely then use <strong>rollback</strong> method.</p>
<p>Here is a simple example to call <strong>rollback</strong> metho.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>   db.rollback()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<h1>Disconnecting Database:</h1>
<p>To disconnect Database connection, use close() method.</p>
<table class="src" border="1" cellspacing="5" cellpadding="5">
    <tbody>
        <tr>
            <td>
            <pre>    db.close()
            </pre>
            </td>
        </tr>
    </tbody>
</table>
<p>If the connection to a database is closed by the user with the close() method, any outstanding transactions are rolled back by the DB. However, instead of depending on any of DB lower level implementation details, your application would be better off calling commit or rollback explicitly.</p>
<h1>Handling Errors:</h1>
<p>There are many sources of errors. A few examples are a syntax error in an executed SQL statement, a connection failure, or calling the fetch method for an already canceled or finished statement handle.</p>
<p>The DB API defines a number of errors that must exist in each database module. The following table lists these exceptions.</p>
<table class="src" border="1" cellspacing="0" cellpadding="5" width="100%">
    <tbody>
        <tr>
            <th width="15%">Exception</th>
            <th>Description</th>
        </tr>
        <tr>
            <td>Warning</td>
            <td>Used for non-fatal issues. Must subclass StandardError.</td>
        </tr>
        <tr>
            <td>Error</td>
            <td>Base class for errors. Must subclass StandardError.</td>
        </tr>
        <tr>
            <td>InterfaceError</td>
            <td>Used for errors in the database module, not the database itself. Must subclass Error.</td>
        </tr>
        <tr>
            <td>DatabaseError</td>
            <td>Used for errors in the database. Must subclass Error.</td>
        </tr>
        <tr>
            <td>DataError</td>
            <td>Subclass of DatabaseError that refers to errors in the data.</td>
        </tr>
        <tr>
            <td>OperationalError</td>
            <td>Subclass of DatabaseError that refers to errors such as the loss of a connection to the database. These errors are generally outside of the control of the Python scripter.</td>
        </tr>
        <tr>
            <td>IntegrityError</td>
            <td>Subclass of DatabaseError for situations that would damage the relational integrity, such as uniqueness constraints or foreign keys.</td>
        </tr>
        <tr>
            <td>InternalError</td>
            <td>Subclass of DatabaseError that refers to errors internal to the database module, such as a cursor no longer being active.</td>
        </tr>
        <tr>
            <td>ProgrammingError</td>
            <td>Subclass of DatabaseError that refers to errors such as a bad table name and other things that can safely be blamed on you.</td>
        </tr>
        <tr>
            <td>NotSupportedError</td>
            <td>Subclass of DatabaseError that refers to trying to call unsupported functionality.</td>
        </tr>
    </tbody>
</table>
<p>Your Python scripts should handle these errors but before using any of the above exceptions, make sure your MySQLdb has support for that exception. You can get more information about them by reading the DB API 2.0 specification.</p>
<img src ="http://www.blogjava.net/nkjava/aggbug/345723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:09 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python 中文乱码</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345722.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:07:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345722.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345722.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345722.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345722.html</trackback:ping><description><![CDATA[http://bbs.quickbest.com.cn/thread-38962-1-1.html
<img src ="http://www.blogjava.net/nkjava/aggbug/345722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:07 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python 正则表达式</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345721.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:06:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345721.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345721.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345721.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345721.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具，拥有自己独特的语法以及一个独立的处理引擎，效率上可能不如str自带的方法，但功能十分强大。得益于这一点，在提供了正则表达式的语言里，正则表达式的语法都是一样...&nbsp;&nbsp;<a href='http://www.blogjava.net/nkjava/archive/2011/03/04/345721.html'>阅读全文</a><img src ="http://www.blogjava.net/nkjava/aggbug/345721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:06 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python Beautiful Soup</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345720.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345720.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345720.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345720.html</trackback:ping><description><![CDATA[<h1>Beautiful Soup 中文文档</h1>
<strong><font color="#990044" face="Trebuchet MS">http://www.crummy.com/software/BeautifulSoup/documentation.zh.html#Using%20tag%20names%20as%20members</font></strong><br />
<br />
http://www.meegoq.com/forum.php?mod=viewthread&amp;tid=63&amp;extra=<br />
<br />
http://edu.codepub.com/2010/0208/20340.php <br />
<br />
<a href="http://www.crummy.com/software/BeautifulSoup/documentation.zh.html">http://www.crummy.com/software/BeautifulSoup/documentation.zh.html</a> 
<img src ="http://www.blogjava.net/nkjava/aggbug/345720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:05 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python  UUID</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345718.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345718.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345718.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345718.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345718.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">UUID&nbsp;objects&nbsp;(universally&nbsp;unique&nbsp;identifiers)&nbsp;according&nbsp;to&nbsp;RFC&nbsp;</span><span style="color: #000000">4122</span><span style="color: #000000">.<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />UUID&nbsp;objects&nbsp;(universally&nbsp;unique&nbsp;identifiers)&nbsp;according&nbsp;to&nbsp;RFC&nbsp;</span><span style="color: #000000">4122</span><span style="color: #000000">.<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;module&nbsp;provides&nbsp;immutable&nbsp;UUID&nbsp;objects&nbsp;(</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;UUID)&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;the&nbsp;functions<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />uuid1(),&nbsp;uuid3(),&nbsp;uuid4(),&nbsp;uuid5()&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;generating&nbsp;version&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">and</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />UUIDs&nbsp;as&nbsp;specified&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;RFC&nbsp;</span><span style="color: #000000">4122</span><span style="color: #000000">.<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />If&nbsp;all&nbsp;you&nbsp;want&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;a&nbsp;unique&nbsp;ID,&nbsp;you&nbsp;should&nbsp;probably&nbsp;call&nbsp;uuid1()&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;uuid4().<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Note&nbsp;that&nbsp;uuid1()&nbsp;may&nbsp;compromise&nbsp;privacy&nbsp;since&nbsp;it&nbsp;creates&nbsp;a&nbsp;UUID&nbsp;containing<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />the&nbsp;computer</span><span style="color: #800000">'</span><span style="color: #800000">s&nbsp;network&nbsp;address.&nbsp;&nbsp;uuid4()&nbsp;creates&nbsp;a&nbsp;random&nbsp;UUID.</span><span style="color: #800000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Typical&nbsp;usage:<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;uuid<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;UUID&nbsp;based&nbsp;on&nbsp;the&nbsp;host&nbsp;ID&nbsp;and&nbsp;current&nbsp;time</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;uuid.uuid1()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;UUID(</span><span style="color: #800000">'</span><span style="color: #800000">a8098c1a-f86e-11da-bd1a-00112444be1e</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;UUID&nbsp;using&nbsp;an&nbsp;MD5&nbsp;hash&nbsp;of&nbsp;a&nbsp;namespace&nbsp;UUID&nbsp;and&nbsp;a&nbsp;name</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;uuid.uuid3(uuid.NAMESPACE_DNS,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">python.org</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;UUID(</span><span style="color: #800000">'</span><span style="color: #800000">6fa459ea-ee8a-3ca4-894e-db77e160355e</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;random&nbsp;UUID</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;uuid.uuid4()<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;UUID(</span><span style="color: #800000">'</span><span style="color: #800000">16fd2706-8baf-433b-82eb-8c7fada847da</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;UUID&nbsp;using&nbsp;a&nbsp;SHA-1&nbsp;hash&nbsp;of&nbsp;a&nbsp;namespace&nbsp;UUID&nbsp;and&nbsp;a&nbsp;name</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;uuid.uuid5(uuid.NAMESPACE_DNS,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">python.org</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;UUID(</span><span style="color: #800000">'</span><span style="color: #800000">886313e1-3b8a-5372-9b90-0c9aee199e5d</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;UUID&nbsp;from&nbsp;a&nbsp;string&nbsp;of&nbsp;hex&nbsp;digits&nbsp;(braces&nbsp;and&nbsp;hyphens&nbsp;ignored)</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;uuid.UUID(</span><span style="color: #800000">'</span><span style="color: #800000">{00010203-0405-0607-0809-0a0b0c0d0e0f}</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;convert&nbsp;a&nbsp;UUID&nbsp;to&nbsp;a&nbsp;string&nbsp;of&nbsp;hex&nbsp;digits&nbsp;in&nbsp;standard&nbsp;form</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;str(x)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">00010203-0405-0607-0809-0a0b0c0d0e0f</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;get&nbsp;the&nbsp;raw&nbsp;16&nbsp;bytes&nbsp;of&nbsp;the&nbsp;UUID</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;x.bytes<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">\x00\x01\x02\x03\x04\x05\x06\x07\x08\t&nbsp;\x0b\x0c&nbsp;\x0e\x0f</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;make&nbsp;a&nbsp;UUID&nbsp;from&nbsp;a&nbsp;16-byte&nbsp;string</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&gt;&gt;&gt;</span><span style="color: #000000">&nbsp;uuid.UUID(bytes</span><span style="color: #000000">=</span><span style="color: #000000">x.bytes)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;UUID(</span><span style="color: #800000">'</span><span style="color: #800000">00010203-0405-0607-0809-0a0b0c0d0e0f</span><span style="color: #800000">'</span><span style="color: #000000">)<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />This&nbsp;module&nbsp;works&nbsp;with&nbsp;Python&nbsp;</span><span style="color: #000000">2.3</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">or</span><span style="color: #000000">&nbsp;higher.</span></div>
<img src ="http://www.blogjava.net/nkjava/aggbug/345718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:03 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python Urllib2</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345717.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345717.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345717.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345717.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em"><br />
http://docs.python.org/library/urllib.html<br />
<br />
<br />
设置超时时间<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; imp<wbr>ort&nbsp;socket </p>
<p style="text-indent: 2em">imp<wbr>ort&nbsp;urllib2 </p>
<p style="text-indent: 2em">socket.setdefaulttimeout(seconds) </p>
<p style="text-indent: 2em">open&nbsp;=&nbsp;urllib2.urlopen("<a href="http://www.shuoqian.net/">http://www.shuoqian.net</a>")</p>
<p>过socket.setdefaulttimeout() 设置了全局默认超时时间，从而给urllibe2.urlopen()也设置了默认的超时时间<br />
<br />
<br />
<br />
<br />
<br />
抓取图片(这个例子里的Request找不到，我一般只有urllib2)<br />
soup=urlllib2.open(url)<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Let's&nbsp;create&nbsp;a&nbsp;function&nbsp;that&nbsp;downloads&nbsp;a&nbsp;file,&nbsp;and&nbsp;saves&nbsp;it&nbsp;locally.</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">&nbsp;This&nbsp;function&nbsp;accepts&nbsp;a&nbsp;file&nbsp;name,&nbsp;a&nbsp;read/write&nbsp;mode(binary&nbsp;or&nbsp;text),</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">&nbsp;and&nbsp;the&nbsp;base&nbsp;url.</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">def</span><span style="color: #000000">&nbsp;stealStuff(file_name,file_mode,base_url):<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;urllib2&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;Request,&nbsp;urlopen,&nbsp;URLError,&nbsp;HTTPError<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">create&nbsp;the&nbsp;url&nbsp;and&nbsp;the&nbsp;request</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;base_url&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;file_name<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;req&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Request(url)<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Open&nbsp;the&nbsp;url</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;urlopen(req)<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">downloading&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;url<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Open&nbsp;our&nbsp;local&nbsp;file&nbsp;for&nbsp;writing</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local_file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;open(file_name,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">w</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;file_mode)<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">Write&nbsp;to&nbsp;our&nbsp;local&nbsp;file</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local_file.write(f.read())<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local_file.close()<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">handle&nbsp;errors</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">except</span><span style="color: #000000">&nbsp;HTTPError,&nbsp;e:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">HTTP&nbsp;Error:</span><span style="color: #800000">"</span><span style="color: #000000">,e.code&nbsp;,&nbsp;url<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">except</span><span style="color: #000000">&nbsp;URLError,&nbsp;e:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">URL&nbsp;Error:</span><span style="color: #800000">"</span><span style="color: #000000">,e.reason&nbsp;,&nbsp;url<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Set&nbsp;the&nbsp;range&nbsp;of&nbsp;images&nbsp;to&nbsp;1-50.It&nbsp;says&nbsp;51&nbsp;because&nbsp;the</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />#</span><span style="color: #008000">&nbsp;range&nbsp;function&nbsp;never&nbsp;gets&nbsp;to&nbsp;the&nbsp;endpoint.</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">image_range&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;range(</span><span style="color: #000000">1</span><span style="color: #000000">,</span><span style="color: #000000">51</span><span style="color: #000000">)<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Iterate&nbsp;over&nbsp;image&nbsp;range</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;index&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;image_range:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;base_url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">http://www.techniqal.com/</span><span style="color: #800000">'</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">create&nbsp;file&nbsp;name&nbsp;based&nbsp;on&nbsp;known&nbsp;pattern</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;file_name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;str(index)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">.jpg</span><span style="color: #800000">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;Now&nbsp;download&nbsp;the&nbsp;image.&nbsp;If&nbsp;these&nbsp;were&nbsp;text&nbsp;files,</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;or&nbsp;other&nbsp;ascii&nbsp;types,&nbsp;just&nbsp;pass&nbsp;an&nbsp;empty&nbsp;string</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;for&nbsp;the&nbsp;second&nbsp;param&nbsp;ala&nbsp;stealStuff(file_name,'',base_url)</span><span style="color: #008000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;stealStuff(file_name,</span><span style="color: #800000">"</span><span style="color: #800000">b</span><span style="color: #800000">"</span><span style="color: #000000">,base_url)<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<img src ="http://www.blogjava.net/nkjava/aggbug/345717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 16:02 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python String</title><link>http://www.blogjava.net/nkjava/archive/2011/03/04/345716.html</link><dc:creator>草原上的骆驼</dc:creator><author>草原上的骆驼</author><pubDate>Fri, 04 Mar 2011 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/nkjava/archive/2011/03/04/345716.html</guid><wfw:comment>http://www.blogjava.net/nkjava/comments/345716.html</wfw:comment><comments>http://www.blogjava.net/nkjava/archive/2011/03/04/345716.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nkjava/comments/commentRss/345716.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nkjava/services/trackbacks/345716.html</trackback:ping><description><![CDATA[<p>Python-String-Function </p>
<p><strong>字符串中字符大小写的变换：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * S.lower()&nbsp;&nbsp; #小写<br />
&nbsp;&nbsp;&nbsp; * S.upper()&nbsp;&nbsp; #大写<br />
&nbsp;&nbsp;&nbsp; * S.swapcase()&nbsp;&nbsp; #大小写互换<br />
&nbsp;&nbsp;&nbsp; * S.capitalize()&nbsp;&nbsp; #首字母大写<br />
&nbsp;&nbsp;&nbsp; * String.capwords(S)&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #这是模块中的方法。它把S用split()函数分开，然后用capitalize()把首字母变成大写，最后用join()合并到一起<br />
&nbsp;&nbsp;&nbsp; * S.title()&nbsp;&nbsp;&nbsp; #只有首字母大写，其余为小写，模块中没有这个方法 </p>
<p><strong>字符串在输出时的对齐： </strong></p>
<p>&nbsp;&nbsp;&nbsp; * S.ljust(width,[fillchar])&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #输出width个字符，S左对齐，不足部分用fillchar填充，默认的为空格。<br />
&nbsp;&nbsp;&nbsp; * S.rjust(width,[fillchar])&nbsp;&nbsp;&nbsp; #右对齐<br />
&nbsp;&nbsp;&nbsp; * S.center(width, [fillchar])&nbsp;&nbsp;&nbsp; #中间对齐<br />
&nbsp;&nbsp;&nbsp; * S.zfill(width)&nbsp;&nbsp; #把S变成width长，并在右对齐，不足部分用0补足 </p>
<p><strong>字符串中的搜索和替换：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * S.find(substr, [start, [end]])&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #返回S中出现substr的第一个字母的标号，如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索<br />
&nbsp;&nbsp;&nbsp; * S.index(substr, [start, [end]])&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #与find()相同，只是在S中没有substr时，会返回一个运行时错误<br />
&nbsp;&nbsp;&nbsp; * S.rfind(substr, [start, [end]])&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #返回S中最后出现的substr的第一个字母的标号，如果S中没有substr则返回-1，也就是说从右边算起的第一次出现的substr的首字母标号<br />
&nbsp;&nbsp;&nbsp; * S.rindex(substr, [start, [end]])<br />
&nbsp;&nbsp;&nbsp; * S.count(substr, [start, [end]])&nbsp;&nbsp;&nbsp; #计算substr在S中出现的次数<br />
&nbsp;&nbsp;&nbsp; * S.replace(oldstr, newstr, [count])&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #把S中的oldstar替换为newstr，count为替换次数。这是替换的通用形式，还有一些函数进行特殊字符的替换<br />
&nbsp;&nbsp;&nbsp; * S.strip([chars])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #把S中前后chars中有的字符全部去掉，可以理解为把S前后chars替换为None<br />
&nbsp;&nbsp;&nbsp; * S.lstrip([chars])<br />
&nbsp;&nbsp;&nbsp; * S.rstrip([chars])<br />
&nbsp;&nbsp;&nbsp; * S.expandtabs([tabsize])&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #把S中的tab字符替换没空格，每个tab替换为tabsize个空格，默认是8个 </p>
<p><strong>字符串的分割和组合：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * S.split([sep, [maxsplit]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #以sep为分隔符，把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符<br />
&nbsp;&nbsp;&nbsp; * S.rsplit([sep, [maxsplit]])<br />
&nbsp;&nbsp;&nbsp; * S.splitlines([keepends])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #把S按照行分割符分为一个list，keepends是一个bool值，如果为真每行后而会保留行分割符。<br />
&nbsp;&nbsp;&nbsp; * S.join(seq) #把seq代表的序列──字符串序列，用S连接起来 </p>
<p><strong>字符串的mapping，这一功能包含两个函数：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * String.maketrans(from, to)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #返回一个256个字符组成的翻译表，其中from中的字符被一一对应地转换成to，所以from和to必须是等长的。<br />
&nbsp;&nbsp;&nbsp; * S.translate(table[,deletechars])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #使用上面的函数产后的翻译表，把S进行翻译，并把deletechars中有的字符删掉。需要注意的是，如果S为unicode字符串，那么就不支持 deletechars参数，可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译表。 </p>
<p><strong>字符串还有一对编码和解码的函数：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * S.encode([encoding,[errors]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #其中encoding可以有多种值，比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict"，意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通过codecs.register_error注册的值。这一部分内容涉及codecs模块，不是特明白<br />
&nbsp;&nbsp;&nbsp; * S.decode([encoding,[errors]]) </p>
<p><strong>字符串的测试函数，这一类函数在string模块中没有，这些函数返回的都是bool值：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * S.startwith(prefix[,start[,end]])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #是否以prefix开头<br />
&nbsp;&nbsp;&nbsp; * S.endwith(suffix[,start[,end]]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #以suffix结尾<br />
&nbsp;&nbsp;&nbsp; * S.isalnum() <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #是否全是字母和数字，并至少有一个字符<br />
&nbsp;&nbsp;&nbsp; * S.isalpha()&nbsp; #是否全是字母，并至少有一个字符<br />
&nbsp;&nbsp;&nbsp; * S.isdigit()&nbsp; #是否全是数字，并至少有一个字符<br />
&nbsp;&nbsp;&nbsp; * S.isspace() #是否全是空白字符，并至少有一个字符<br />
&nbsp;&nbsp;&nbsp; * S.islower() #S中的字母是否全是小写<br />
&nbsp;&nbsp;&nbsp; * S.isupper() #S中的字母是否便是大写<br />
&nbsp;&nbsp;&nbsp; * S.istitle() #S是否是首字母大写的 </p>
<p><strong>字符串类型转换函数，这几个函数只在string模块中有：</strong> </p>
<p>&nbsp;&nbsp;&nbsp; * string.atoi(s[,base]) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #base默认为10，如果为0,那么s就可以是012或0x23这种形式的字符串，如果是16那么s就只能是0x23或0X12这种形式的字符串<br />
&nbsp;&nbsp;&nbsp; * string.atol(s[,base])&nbsp; #转成long<br />
&nbsp;&nbsp;&nbsp; * string.atof(s[,base])&nbsp; #转成float <br />
<br />
*******************************************************************************************************************<br />
Python字符串在输出时的对齐：</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.ljust(width,[fillchar])&nbsp; &nbsp;</span></span></li>
</ol>
</pre>
<p>#输出width个字符，S左对齐，不足部分用fillchar填充，默认的为空格。</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.rjust(width,[fillchar])&nbsp;# &nbsp;</span></span></li>
</ol>
</pre>
<p>&nbsp;</p>
<p>右对齐</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.center(width,&nbsp;[fillchar])&nbsp;# &nbsp;</span></span></li>
</ol>
</pre>
<p>&nbsp;</p>
<p>中间对齐 S.zfill(width) #把S变成width长，并在右对齐，不足部分用0补足字符串中的搜索和替换：</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.find(substr,&nbsp;[start,&nbsp;[end]])&nbsp; &nbsp;</span></span></li>
</ol>
</pre>
<p>#返回S中出现substr的第一个字母的标号，如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.index(substr,&nbsp;[start,&nbsp;[end]])&nbsp; &nbsp;</span></span></li>
</ol>
</pre>
<p>#与find()相同，只是在S中没有substr时，会返回一个运行时错误</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.rfind(substr,&nbsp;[start,&nbsp;[end]])&nbsp; &nbsp;</span></span></li>
</ol>
</pre>
<p>#返回S中最后出现的substr的第一个字母的标号，如果S中没有substr则返回-1，也就是说从右边算起的第一次出现的substr的首字母标号</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.rindex(substr,&nbsp;[start,&nbsp;[end]])&nbsp; &nbsp;</span></span>
    <li><span>S.count(substr,&nbsp;[start,&nbsp;[end]])&nbsp;# &nbsp;</span></li>
</ol>
</pre>
<p>&nbsp;</p>
<p>计算substr在S中出现的次数</p>
<pre>
<ol class="dp-xml">
    <li class="alt"><span><span>S.replace(oldstr,&nbsp;newstr,&nbsp;[count])&nbsp; &nbsp;</span></span></li>
</ol>
</pre>
<p>#把S中的oldstar替换为newstr，count为替换次数。这是替换的通用形式，还有一些函数进行特殊字符的替换</p>
<p>**************************************************************************************************<br />
<br />
</p>
<img src ="http://www.blogjava.net/nkjava/aggbug/345716.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nkjava/" target="_blank">草原上的骆驼</a> 2011-03-04 15:52 <a href="http://www.blogjava.net/nkjava/archive/2011/03/04/345716.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>