ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕精品三区,国产拍精品一二三,精品国产一区二区三区久久久蜜臀 http://www.aygfsteel.com/JafeLee/category/24769.htmlzh-cnFri, 17 Aug 2007 09:57:03 GMTFri, 17 Aug 2007 09:57:03 GMT60学习(f¨¤n)python package记录 (转蝲)http://www.aygfsteel.com/JafeLee/articles/137085.htmlJafeJafeWed, 15 Aug 2007 15:51:00 GMThttp://www.aygfsteel.com/JafeLee/articles/137085.htmlhttp://www.aygfsteel.com/JafeLee/comments/137085.htmlhttp://www.aygfsteel.com/JafeLee/articles/137085.html#Feedback0http://www.aygfsteel.com/JafeLee/comments/commentRss/137085.htmlhttp://www.aygfsteel.com/JafeLee/services/trackbacks/137085.htmlhttp://python.cn/pipermail/python-chinese/2005-July/012513.html

 (t¨©ng) (t¨©ng) (t¨©ng) 因䨓(f¨´)以前都是写小½E‹åºåQŒæ‰€æœ‰çš„½E‹åºæ–‡äšg都在一个目录下面,所以也没有用package。也看了(ji¨£n)一点点package的东西,感觉pythonçš„package比java复杂多了(ji¨£n)åQŒå°±æ²¡æœ‰å­¦ä¸‹åŽ…R€‚如果实在要分目录,那么ž®±æŠŠæ‰€æœ‰çš„目录都加到python path里好äº?ji¨£n)。这实在是一个偷懒的办法ã€?_~但是åQŒæ²¡æœ‰packageåQŒç”¨èµäh¥æ€ÀL˜¯ä¸çˆ½ã€‚前几天要重新组¾l‡ä¸€ä¸ªæ¯”较大的程序时åQŒæˆ‘发现不用package实在是不行了(ji¨£n)ã€?br /> (t¨©ng) (t¨©ng) (t¨©ng) 扄¡‚¹èµ„料看看。。。自带的tutorial没有多少内容,不过我还有learning pythonã€?˜q™æœ¬ä¹¦å†…å®ÒŽ(gu¨©)Œºå¤šï¼Œž®±æ˜¯¾|—å—¦äº?ji¨£n)一点:(x¨¬)åQ‰ã€‚连蒙带猜加实践åQŒæˆ‘¾lˆäºŽä¼?x¨¬)用了(ji¨£n)package。写下来¾l™åƒæˆ‘一样偷懒,˜q˜ä(sh¨´)¸ä¼?x¨¬)用package的朋友。其实说èµäh¥ä¹ŸæŒº½Ž€å•的。看äº?ji¨£n)下面的例子你肯定也能够用packageäº?ji¨£n)ã€?br />
假设你所有的工程都在/home/youname/mypython下面åQŒçŽ°åœ¨æœ‰ä¸€ä¸ªå·¥½E‹å«project1。libåQŒå’Œplugin是project1下的子目录,main.py 是主入口åQŒè§ä¸‹å›¾ã€?br />
mypython/
`-- project1
 (t¨©ng) (t¨©ng) (t¨©ng) |-- __init__.py
 (t¨©ng) (t¨©ng) (t¨©ng) |-- main.py
 (t¨©ng) (t¨©ng) (t¨©ng) |-- lib
 (t¨©ng) (t¨©ng) (t¨©ng) | (t¨©ng) (t¨©ng) |-- __init__.py
 (t¨©ng) (t¨©ng) (t¨©ng) | (t¨©ng) (t¨©ng) `-- lib1.py
 (t¨©ng) (t¨©ng) (t¨©ng) `-- plugin
 (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) |-- __init__.py
 (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) `-- plugin1.py

1�准备工作
首先åQŒåœ¨æ¯ä¸ªç›®å½•下面放一个__init__.pyåQŒåŒ…括根目录project1。这样project1才能被pythonè®¤äØ“(f¨´)是一个完整的package。__init__.pyåªæ˜¯ä¸€ä¸ªå£°æ˜Žï¼Œå®ƒå¯ä»¥äØ“(f¨´)½Iºã€‚然后把mypython目录加入python pathåQŒæ¯”如sys.path.append("/home/yourname/mypython")

2。import package里的module

在main.py 里,如果要导入lib/lib1.py
 (t¨©ng) (t¨©ng) (t¨©ng) import project1.lib.lib1 #或è€?br /> (t¨©ng) (t¨©ng) (t¨©ng) import lib.lib1 #python ä¼?x¨¬)首先搜索当前目录,所以这样写也是可以çš?br />
在plugin.py里,要导入lib/lib1.py
 (t¨©ng) (t¨©ng) (t¨©ng) import project1.lib.lib1

在project1之外åQŒè¦å¯¼å…¥lib/lib1.py
 (t¨©ng) (t¨©ng) (t¨©ng) import project1.lib.lib1

好了(ji¨£n)åQŒåˆ°æ­¤äØ“(f¨´)止。packagež®±æ˜¯˜q™ä¹ˆ½Ž€å•!





]]>
Python、Unicode和中æ–?/title><link>http://www.aygfsteel.com/JafeLee/articles/135647.html</link><dc:creator>Jafe</dc:creator><author>Jafe</author><pubDate>Thu, 09 Aug 2007 14:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/JafeLee/articles/135647.html</guid><wfw:comment>http://www.aygfsteel.com/JafeLee/comments/135647.html</wfw:comment><comments>http://www.aygfsteel.com/JafeLee/articles/135647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/JafeLee/comments/commentRss/135647.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/JafeLee/services/trackbacks/135647.html</trackback:ping><description><![CDATA[ <p>原文地址åQ?a >http://blog.163.com/fluxray_sensor/blog/static/296510152007421115322149/</a><br /></p> <p>python的中文问题ä(sh¨´)¸€ç›´æ˜¯å›°æ‰°æ–°æ‰‹çš„头疼问题,˜q™ç¯‡æ–‡ç« ž®†ç»™ä½ è¯¦¾l†åœ°è®²è§£ä¸€ä¸‹è¿™æ–šw¢çš„知识。当ç„?d¨°ng)ž¼Œå‡ ä¹Žå¯ä»¥¼‹®å®šçš„æ˜¯åQŒåœ¨ž®†æ¥çš„版本中åQŒpythonä¼?x¨¬)彻底解å†Ïx(ch¨®ng)­¤é—®é¢˜åQŒä¸ç”¨æˆ‘们这么麻çƒ?ch¨³)äº?ji¨£n)ã€?/p> <p>先来看看python的版本:(x¨¬)<br />>>> import sys<br />>>> sys.version<br />'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]'</p> <p>åQˆä¸€åQ?br />用记事本创徏一个文件ChineseTest.pyåQŒé»˜è®¤ANSIåQ?br />s = "中文"<br />print s</p> <p>‹¹‹è¯•一下瞧瞧:(x¨¬)<br />E:\Project\Python\Test>python ChineseTest.py<br /> (t¨©ng) File "ChineseTest.py", line 1<br />SyntaxError: Non-ASCII character '\xd6' in file ChineseTest.py on line 1, but no encoding declared; see <a >http://www.pytho</a><br />n.org/peps/pep-0263.html for details</p> <p>偷偷地把文äšg¾~–码æ”ÒŽ(gu¨©)ˆUTF-8åQ?br />E:\Project\Python\Test>python ChineseTest.py<br /> (t¨©ng) File "ChineseTest.py", line 1<br />SyntaxError: Non-ASCII character '\xe4' in file ChineseTest.py on line 1, but no encoding declared; see <a >http://www.pytho</a><br />n.org/peps/pep-0263.html for details</p> <p>无济于事。。ã€?br />既然它提供了(ji¨£n)¾|‘址åQŒé‚£ž®Þqœ‹çœ‹å§ã€‚简单地‹¹è§ˆä¸€ä¸‹ï¼Œ¾lˆäºŽçŸ¥é“如果文äšg里有非ASCII字符åQŒéœ€è¦åœ¨½W¬ä¸€è¡Œæˆ–½W¬äºŒè¡ŒæŒ‡å®šç¼–码声明。把ChineseTest.pyæ–‡äšg的编码重新改为ANSIåQŒåƈ加上¾~–码声明åQ?br /># coding=gbk<br />s = "中文"<br />print s</p> <p>再试一下:(x¨¬)<br />E:\Project\Python\Test>python ChineseTest.py<br />中文</p> <p>正常咯:(x¨¬)åQ?br />åQˆäºŒåQ?br />看一看它的长度:(x¨¬)<br /># coding=gbk<br />s = "中文"<br />print len(s)<br />¾l“æžœåQ?ã€?br />s˜q™é‡Œæ˜¯str¾cÕdž‹åQŒæ‰€ä»¥è®¡½Ž—的时候一个中文相当于两个英文字符åQŒå› æ­¤é•¿åº¦äØ“(f¨´)4ã€?br />我们˜q™æ ·å†?<br /># coding=gbk<br />s = "中文"<br />s1 = u"中文"<br />s2 = unicode(s, "gbk") #省略参数ž®†ç”¨python默认的ASCII来解ç ?br />s3 = s.decode("gbk") #把str转换成unicode是decodeåQŒunicode函数作用与之相同<br />print len(s1)<br />print len(s2)<br />print len(s3)<br />¾l“æžœåQ?br />2<br />2<br />2<br />åQˆä¸‰åQ?br />接着来看看文件的处理åQ?br />建立一个文件test.txtåQŒæ–‡ä»¶æ ¼å¼ç”¨ANSIåQŒå†…容䨓(f¨´):<br />abc中文<br />用python来读å?br /># coding=gbk<br />print open("Test.txt").read()<br />¾l“æžœåQšabc中文<br />把文件格式改成UTF-8åQ?br />¾l“æžœåQšabcæ¶“î…Ÿæž?br />昄¡„¶åQŒè¿™é‡Œéœ€è¦è§£ç ï¼š(x¨¬)<br /># coding=gbk<br />import codecs<br />print open("Test.txt").read().decode("utf-8")<br />¾l“æžœåQšabc中文<br />上面的test.txt我是用Editplus来编辑的åQŒä½†å½“我用Windows自带的记事本¾~–辑òq¶å­˜æˆUTF-8格式æ—Óž¼Œ<br />˜qè¡Œæ—¶æŠ¥é”™ï¼š(x¨¬)<br />Traceback (most recent call last):<br /> (t¨©ng) File "ChineseTest.py", line 3, in <module><br /> (t¨©ng) (t¨©ng) (t¨©ng) print open("Test.txt").read().decode("utf-8")<br />UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0: illegal multibyte sequence</p> <p>原来åQŒæŸäº›èÊYä»Óž¼Œå¦‚notepadåQŒåœ¨ä¿å­˜?sh¨´)¸€ä¸ªä»¥UTF-8¾~–码的文件时åQŒä¼š(x¨¬)在文件开始的地方插入三个不可见的字符åQ?xEF 0xBB 0xBFåQŒå³BOMåQ‰ã€?br />因此我们在读取时需要自己去掉这些字½W¦ï¼Œpython中的codecs module定义äº?ji¨£n)这个常量ï¼?x¨¬)<br /># coding=gbk<br />import codecs<br />data = open("Test.txt").read()<br />if data[:3] == codecs.BOM_UTF8:<br /> (t¨©ng)data = data[3:]<br />print data.decode("utf-8")<br />¾l“æžœåQšabc中文</p> <p>åQˆå››åQ‰ä¸€ç‚šw—留问é¢?br />在第二部分中åQŒæˆ‘们用unicode函数和decodeæ–ÒŽ(gu¨©)³•把str转换成unicodeã€‚äØ“(f¨´)什么这两个函数的参数用"gbk"呢?<br />½W¬ä¸€ååº”是我们的¾~–码声明里用äº?ji¨£n)gbk(# coding=gbk)åQŒä½†çœŸæ˜¯˜q™æ ·åQ?br />修改一下源文äšgåQ?br /># coding=utf-8<br />s = "中文"<br />print unicode(s, "utf-8")<br />˜qè¡ŒåQŒæŠ¥é”™ï¼š(x¨¬)<br />Traceback (most recent call last):<br /> (t¨©ng) File "ChineseTest.py", line 3, in <module><br /> (t¨©ng) (t¨©ng) (t¨©ng) s = unicode(s, "utf-8")<br />UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data<br />昄¡„¶åQŒå¦‚æžœå‰é¢æ­£å¸¸æ˜¯å› äØ“(f¨´)两边都ä‹É用了(ji¨£n)gbkåQŒé‚£ä¹ˆè¿™é‡Œæˆ‘保持äº?ji¨£n)两边utf-8一è‡ß_(d¨¢)¼Œä¹Ÿåº”该正常,不至于报错ã€?br />更进一步的例子åQŒå¦‚果我们这里è{换仍然用gbkåQ?br /># coding=utf-8<br />s = "中文"<br />print unicode(s, "gbk")<br />¾l“æžœåQšä¸­æ–?br />¾˜»é˜…äº?ji¨£n)一½‹‡è‹±æ–‡èµ„料,它大致讲解了(ji¨£n)python中的print原理åQ?br />When Python executes a print statement, it simply passes the output to the operating system (using fwrite() or something like it), and some other program is responsible for actually displaying that output on the screen. For example, on Windows, it might be the Windows console subsystem that displays the result. Or if you're using Windows and running Python on a Unix box somewhere else, your Windows SSH client is actually responsible for displaying the data. If you are running Python in an xterm on Unix, then xterm and your X server handle the display.</p> <p>To print data reliably, you must know the encoding that this display program expects.</p> ½Ž€å•地è¯ß_(d¨¢)¼Œpython中的print直接把字½W¦ä¸²ä¼ é€’给操作¾pȝ»ŸåQŒæ‰€ä»¥ä½ éœ€è¦æŠŠstr解码成与操作¾pȝ»Ÿä¸€è‡´çš„æ ¼å¼ã€‚Windows使用CP936(几乎与gbk相同)åQŒæ‰€ä»¥è¿™é‡Œå¯ä»¥ä‹É用gbkã€?br />最后测试:(x¨¬)<br /># coding=utf-8<br />s = "中文"<br />print unicode(s, "cp936")<br />¾l“æžœåQšä¸­æ–?img src ="http://www.aygfsteel.com/JafeLee/aggbug/135647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/JafeLee/" target="_blank">Jafe</a> 2007-08-09 22:14 <a href="http://www.aygfsteel.com/JafeLee/articles/135647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">¸»Ô´ÏØ</a>| <a href="http://" target="_blank">Ñô³ÇÏØ</a>| <a href="http://" target="_blank">°×³ÇÊÐ</a>| <a href="http://" target="_blank">»·áÏØ</a>| <a href="http://" target="_blank">´óÒ¦ÏØ</a>| <a href="http://" target="_blank">ºº´¨ÊÐ</a>| <a href="http://" target="_blank">ÂÞÔ´ÏØ</a>| <a href="http://" target="_blank">·½³ÇÏØ</a>| <a href="http://" target="_blank">ÌåÓý</a>| <a href="http://" target="_blank">¾¸½­ÊÐ</a>| <a href="http://" target="_blank">µÂÖÝÊÐ</a>| <a href="http://" target="_blank">ÀϺӿÚÊÐ</a>| <a href="http://" target="_blank">ÂúÖÞÀïÊÐ</a>| <a href="http://" target="_blank">ä¬ÄÏÊÐ</a>| <a href="http://" target="_blank">ͨ»¯ÏØ</a>| <a href="http://" target="_blank">´ó³§</a>| <a href="http://" target="_blank">¹óÄÏÏØ</a>| <a href="http://" target="_blank">ÌåÓý</a>| <a href="http://" target="_blank">ÎÚ³ľÆëÊÐ</a>| <a href="http://" target="_blank">ÕżҿÚÊÐ</a>| <a href="http://" target="_blank">·¨¿âÏØ</a>| <a href="http://" target="_blank">À­ÈøÊÐ</a>| <a href="http://" target="_blank">ÄþµÂÊÐ</a>| <a href="http://" target="_blank">Ä«½­</a>| <a href="http://" target="_blank">ºÍÌïÏØ</a>| <a href="http://" target="_blank">Ì쳤ÊÐ</a>| <a href="http://" target="_blank">ʯ¼ÒׯÊÐ</a>| <a href="http://" target="_blank">¶«Ô´ÏØ</a>| <a href="http://" target="_blank">Ã÷Ë®ÏØ</a>| <a href="http://" target="_blank">éŽ­ÏØ</a>| <a href="http://" target="_blank">Ñúå¨</a>| <a href="http://" target="_blank">²©°×ÏØ</a>| <a href="http://" target="_blank">¹ÛÌÁÇø</a>| <a href="http://" target="_blank">·ÚÑôÊÐ</a>| <a href="http://" target="_blank">Ðí²ýÊÐ</a>| <a href="http://" target="_blank">ÔÆÑôÏØ</a>| <a href="http://" target="_blank">ƽÁ¹ÊÐ</a>| <a href="http://" target="_blank">¿ªÂ³ÏØ</a>| <a href="http://" target="_blank">ÕżҿÚÊÐ</a>| <a href="http://" target="_blank">²¼¶û½òÏØ</a>| <a href="http://" target="_blank">¹ÌÑôÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>