資源描述:
《python入門(mén)_02》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Python語(yǔ)言進(jìn)階第一天?程式間的溝通:Pipes?探詢他人的webserver:http?網(wǎng)頁(yè)分析:HTML?合併http和HTML:以網(wǎng)站統(tǒng)計(jì)為例?送信給許多朋友:smtp?Web應(yīng)用:cgi程式間的溝通:Pipes?每個(gè)程式有預(yù)設(shè)的資料管:標(biāo)準(zhǔn)輸入(stdin)、標(biāo)準(zhǔn)輸出(stdout)、標(biāo)準(zhǔn)診斷(stderr)?每個(gè)管子的資料流都是單向的?臺(tái)灣水電工:把管子接起來(lái)popen(),popen2(),popen3()?可以用pythonscript去控制互動(dòng)式介面的應(yīng)用軟體,例如:Gnuplot?在互動(dòng)應(yīng)用上加上批次處理功能1探詢他人的webse
2、rver:httplib?範(fàn)例:1importsys,httplib2defprobe(host):3'''probethewebserverprogramofahost'''4h=httplib.HTTP()5h.set_debuglevel(0)6dict={'ETag':''}#default(someserversdon'treturnthis)7try:8h.connect(host)9h.putrequest('GET','/')10h.endheaders()11status,reason,headers=h.getreply()12if
3、headers:13#printheaders14forheaderinheaders.headers:15line=header.strip()16index=line.find(':')17ifindex==-1:raise'FormatError'18dict[line[0:index]]=line[index+2:]19except:20dict['Server']='Unknown'21return'%s,%s,%s'%(host,dict['ETag'],dict['Server'])2223if__name__=="__main__":2
4、4iflen(sys.argv)<2:25sys.stderr.write('%shost(s)...'%sys.argv[0])26sys.exit(0)27forhostinsys.argv[1:]:28printprobe(host)29?剛剛才發(fā)現(xiàn):從python2.0開(kāi)始HTTPclass是為了後向相容而留下的,新程式請(qǐng)用urllib。讀取網(wǎng)頁(yè):urllib模組1>>>importurllib2>>>page=urllib.urlopen('http://www.python.org')3>>>content=page.read()4>>
5、>page.close()?urlopen()傳回類(lèi)似檔案的物件,有read(),readline(),readlines(),fileno(),close(),info()和geturl()等取用方法。?也可以讀ftp協(xié)定的URL?POST資料到網(wǎng)頁(yè):引數(shù)data=(用urllib.urlencode()來(lái)準(zhǔn)備application/x-www-form-urlencoded型態(tài)的引數(shù))21>>>importurllib2>>>dict={'name':'葉平','email':'pyeh@phys.ntu.edu.tw'}3>>>args=urll
6、ib.urlencode(dict)4>>>printargs5'name=%B8%AD%A5%AD&email=pyeh%40phys.ntu.edu.tw'6>>>page=urllib.urlopen('http://myweb.net/',data=args)7>>>content=page.read()8>>>page.close()?有proxy:引數(shù)proxies=1>>>importurllib2>>>myproxy={'http':'http://proxy.ntu.edu.tw:3128','ftp':'ftp://some.whe
7、re'}3>>>page=urllib.urlopen('http://www.python.org',proxies=myproxy)4>>>content=page.read()5>>>page.close()urllib模組(II)?可以取代httplib程式的函式:page.info()?傳回mimetools.Message類(lèi)別的物件?不過(guò)mimetools模組在Python2.3中作廢了,說(shuō)是要用email模組取代,但使用介面似乎不完全相同1>>>...2>>>page=urllib.urlopen('http://www.python.o
8、rg/')3>>>m=page.info()4>>>printm.dict5{'date':'