锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽聽聽 鍥犱負浠ュ墠閮芥槸鍐欏皬紼嬪簭錛屾墍鏈夌殑紼嬪簭鏂囦歡閮藉湪涓涓洰褰曚笅闈紝鎵浠ヤ篃娌℃湁鐢╬ackage銆備篃鐪嬩簡涓鐐圭偣package鐨勪笢瑗匡紝鎰熻python鐨刾ackage姣攋ava澶嶆潅澶氫簡錛屽氨娌℃湁瀛︿笅鍘匯傚鏋滃疄鍦ㄨ鍒嗙洰褰曪紝閭d箞灝辨妸鎵鏈夌殑鐩綍閮藉姞鍒皃ython path閲屽ソ浜嗐傝繖瀹炲湪鏄竴涓伔鎳掔殑鍔炴硶銆?_~浣嗘槸錛屾病鏈塸ackage錛岀敤璧鋒潵鎬繪槸涓嶇埥銆傚墠鍑犲ぉ瑕侀噸鏂扮粍緇囦竴涓瘮杈冨ぇ鐨勭▼搴忔椂錛屾垜鍙戠幇涓嶇敤package瀹炲湪鏄笉琛屼簡銆?br />聽聽聽 鎵劇偣璧勬枡鐪嬬湅銆傘傘傝嚜甯︾殑tutorial娌℃湁澶氬皯鍐呭,涓嶈繃鎴戣繕鏈塴earning python銆?榪欐湰涔﹀唴瀹規尯澶氾紝灝辨槸緗楀棪浜嗕竴鐐癸細錛夈傝繛钂欏甫鐚滃姞瀹炶返錛屾垜緇堜簬浼氱敤浜唒ackage銆傚啓涓嬫潵緇欏儚鎴戜竴鏍峰伔鎳掞紝榪樹笉浼氱敤package鐨勬湅鍙嬨傚叾瀹炶璧鋒潵涔熸尯綆鍗曠殑銆傜湅浜嗕笅闈㈢殑渚嬪瓙浣犺偗瀹氫篃鑳藉鐢╬ackage浜嗐?br />
鍋囪浣犳墍鏈夌殑宸ョ▼閮藉湪/home/youname/mypython涓嬮潰錛岀幇鍦ㄦ湁涓涓伐紼嬪彨project1銆俵ib錛屽拰plugin鏄痯roject1涓嬬殑瀛愮洰褰曪紝main.py 鏄富鍏ュ彛錛岃涓嬪浘銆?br />
mypython/
`-- project1
聽聽聽 |-- __init__.py
聽聽聽 |-- main.py
聽聽聽 |-- lib
聽聽聽 |聽聽 |-- __init__.py
聽聽聽 |聽聽 `-- lib1.py
聽聽聽 `-- plugin
聽聽聽聽聽聽聽 |-- __init__.py
聽聽聽聽聽聽聽 `-- plugin1.py
1銆?鍑嗗宸ヤ綔
棣栧厛錛屽湪姣忎釜鐩綍涓嬮潰鏀句竴涓猒_init__.py錛屽寘鎷牴鐩綍project1銆傝繖鏍穚roject1鎵嶈兘琚玴ython璁や負鏄竴涓畬鏁寸殑package銆俖_init__.py鍙槸涓涓0鏄庯紝瀹冨彲浠ヤ負絀恒傜劧鍚庢妸mypython鐩綍鍔犲叆python path錛屾瘮濡俿ys.path.append("/home/yourname/mypython")
2銆俰mport package閲岀殑module
鍦╩ain.py 閲岋紝濡傛灉瑕佸鍏ib/lib1.py
聽聽聽 import project1.lib.lib1 #鎴栬?br />聽聽聽 import lib.lib1 #python 浼氶鍏堟悳绱㈠綋鍓嶇洰褰曪紝鎵浠ヨ繖鏍峰啓涔熸槸鍙互鐨?br />
鍦╬lugin.py閲岋紝瑕佸鍏ib/lib1.py
聽聽聽 import project1.lib.lib1
鍦╬roject1涔嬪錛岃瀵煎叆lib/lib1.py
聽聽聽 import project1.lib.lib1
濂戒簡錛屽埌姝や負姝€俻ackage灝辨槸榪欎箞綆鍗曪紒
]]>
python鐨勪腑鏂囬棶棰樹竴鐩存槸鍥版壈鏂版墜鐨勫ご鐤奸棶棰橈紝榪欑瘒鏂囩珷灝嗙粰浣犺緇嗗湴璁茶В涓涓嬭繖鏂歸潰鐨勭煡璇嗐傚綋鐒訛紝鍑犱箮鍙互紜畾鐨勬槸錛屽湪灝嗘潵鐨勭増鏈腑錛宲ython浼氬交搴曡В鍐蟲闂錛屼笉鐢ㄦ垜浠繖涔堥夯鐑︿簡銆?/p>
鍏堟潵鐪嬬湅python鐨勭増鏈細
>>> import sys
>>> sys.version
'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]'
錛堜竴錛?br />鐢ㄨ浜嬫湰鍒涘緩涓涓枃浠禖hineseTest.py錛岄粯璁NSI錛?br />s = "涓枃"
print s
嫻嬭瘯涓涓嬬灖鐬э細
E:\Project\Python\Test>python ChineseTest.py
聽 File "ChineseTest.py", line 1
SyntaxError: Non-ASCII character '\xd6' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho
n.org/peps/pep-0263.html for details
鍋峰伔鍦版妸鏂囦歡緙栫爜鏀規垚UTF-8錛?br />E:\Project\Python\Test>python ChineseTest.py
聽 File "ChineseTest.py", line 1
SyntaxError: Non-ASCII character '\xe4' in file ChineseTest.py on line 1, but no encoding declared; see http://www.pytho
n.org/peps/pep-0263.html for details
鏃犳祹浜庝簨銆傘傘?br />鏃㈢劧瀹冩彁渚涗簡緗戝潃錛岄偅灝辯湅鐪嬪惂銆傜畝鍗曞湴嫻忚涓涓嬶紝緇堜簬鐭ラ亾濡傛灉鏂囦歡閲屾湁闈濧SCII瀛楃錛岄渶瑕佸湪絎竴琛屾垨絎簩琛屾寚瀹氱紪鐮佸0鏄庛傛妸ChineseTest.py鏂囦歡鐨勭紪鐮侀噸鏂版敼涓篈NSI錛屽茍鍔犱笂緙栫爜澹版槑錛?br /># coding=gbk
s = "涓枃"
print s
鍐嶈瘯涓涓嬶細
E:\Project\Python\Test>python ChineseTest.py
涓枃
姝e父鍜細錛?br />錛堜簩錛?br />鐪嬩竴鐪嬪畠鐨勯暱搴︼細
# coding=gbk
s = "涓枃"
print len(s)
緇撴灉錛?銆?br />s榪欓噷鏄痵tr綾誨瀷錛屾墍浠ヨ綆楃殑鏃跺欎竴涓腑鏂囩浉褰撲簬涓や釜鑻辨枃瀛楃錛屽洜姝ら暱搴︿負4銆?br />鎴戜滑榪欐牱鍐?
# coding=gbk
s = "涓枃"
s1 = u"涓枃"
s2 = unicode(s, "gbk") #鐪佺暐鍙傛暟灝嗙敤python榛樿鐨凙SCII鏉ヨВ鐮?br />s3 = s.decode("gbk") #鎶妔tr杞崲鎴恥nicode鏄痙ecode錛寀nicode鍑芥暟浣滅敤涓庝箣鐩稿悓
print len(s1)
print len(s2)
print len(s3)
緇撴灉錛?br />2
2
2
錛堜笁錛?br />鎺ョ潃鏉ョ湅鐪嬫枃浠剁殑澶勭悊錛?br />寤虹珛涓涓枃浠秚est.txt錛屾枃浠舵牸寮忕敤ANSI錛屽唴瀹逛負:
abc涓枃
鐢╬ython鏉ヨ鍙?br /># coding=gbk
print open("Test.txt").read()
緇撴灉錛歛bc涓枃
鎶婃枃浠舵牸寮忔敼鎴怳TF-8錛?br />緇撴灉錛歛bc娑擃厽鏋?br />鏄劇劧錛岃繖閲岄渶瑕佽В鐮侊細
# coding=gbk
import codecs
print open("Test.txt").read().decode("utf-8")
緇撴灉錛歛bc涓枃
涓婇潰鐨則est.txt鎴戞槸鐢‥ditplus鏉ョ紪杈戠殑錛屼絾褰撴垜鐢╓indows鑷甫鐨勮浜嬫湰緙栬緫騫跺瓨鎴怳TF-8鏍煎紡鏃訛紝
榪愯鏃舵姤閿欙細
Traceback (most recent call last):
聽 File "ChineseTest.py", line 3, in <module>
聽聽聽 print open("Test.txt").read().decode("utf-8")
UnicodeEncodeError: 'gbk' codec can't encode character u'\ufeff' in position 0: illegal multibyte sequence
鍘熸潵錛屾煇浜涜蔣浠訛紝濡俷otepad錛屽湪淇濆瓨涓涓互UTF-8緙栫爜鐨勬枃浠舵椂錛屼細鍦ㄦ枃浠跺紑濮嬬殑鍦版柟鎻掑叆涓変釜涓嶅彲瑙佺殑瀛楃錛?xEF 0xBB 0xBF錛屽嵆BOM錛夈?br />鍥犳鎴戜滑鍦ㄨ鍙栨椂闇瑕佽嚜宸卞幓鎺夎繖浜涘瓧絎︼紝python涓殑codecs module瀹氫箟浜嗚繖涓父閲忥細
# coding=gbk
import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
聽data = data[3:]
print data.decode("utf-8")
緇撴灉錛歛bc涓枃
錛堝洓錛変竴鐐歸仐鐣欓棶棰?br />鍦ㄧ浜岄儴鍒嗕腑錛屾垜浠敤unicode鍑芥暟鍜宒ecode鏂規硶鎶妔tr杞崲鎴恥nicode銆備負浠涔堣繖涓や釜鍑芥暟鐨勫弬鏁扮敤"gbk"鍛紵
絎竴鍙嶅簲鏄垜浠殑緙栫爜澹版槑閲岀敤浜唃bk(# coding=gbk)錛屼絾鐪熸槸榪欐牱錛?br />淇敼涓涓嬫簮鏂囦歡錛?br /># coding=utf-8
s = "涓枃"
print unicode(s, "utf-8")
榪愯錛屾姤閿欙細
Traceback (most recent call last):
聽 File "ChineseTest.py", line 3, in <module>
聽聽聽 s = unicode(s, "utf-8")
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data
鏄劇劧錛屽鏋滃墠闈㈡甯告槸鍥犱負涓よ竟閮戒嬌鐢ㄤ簡gbk錛岄偅涔堣繖閲屾垜淇濇寔浜嗕袱杈箄tf-8涓鑷達紝涔熷簲璇ユ甯革紝涓嶈嚦浜庢姤閿欍?br />鏇磋繘涓姝ョ殑渚嬪瓙錛屽鏋滄垜浠繖閲岃漿鎹粛鐒剁敤gbk錛?br /># coding=utf-8
s = "涓枃"
print unicode(s, "gbk")
緇撴灉錛氫腑鏂?br />緲婚槄浜嗕竴綃囪嫳鏂囪祫鏂欙紝瀹冨ぇ鑷磋瑙d簡python涓殑print鍘熺悊錛?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.
To print data reliably, you must know the encoding that this display program expects.
綆鍗曞湴璇達紝python涓殑print鐩存帴鎶婂瓧絎︿覆浼犻掔粰鎿嶄綔緋葷粺錛屾墍浠ヤ綘闇瑕佹妸str瑙g爜鎴愪笌鎿嶄綔緋葷粺涓鑷寸殑鏍煎紡銆俉indows浣跨敤CP936(鍑犱箮涓巊bk鐩稿悓)錛屾墍浠ヨ繖閲屽彲浠ヤ嬌鐢╣bk銆?br />鏈鍚庢祴璇曪細