進行數據解析的理由不計其數,相關的工具和技巧也同樣如此。但是,當您需要用這些數據做一些新的事情時,即使有“合適的”工具可能也是不夠的。這一擔心對於異類數據源的集成同樣存在。用來做這項工作的合適工具遲早應該是一種編程語言。 Oracle 提供了一些非常強大的實用程式來載入、處理和卸載數據。SQL*Lo ...
進行數據解析的理由不計其數,相關的工具和技巧也同樣如此。但是,當您需要用這些數據做一些新的事情時,即使有“合適的”工具可能也是不夠的。這一擔心對於異類數據源的集成同樣存在。用來做這項工作的合適工具遲早應該是一種編程語言。
Oracle 提供了一些非常強大的實用程式來載入、處理和卸載數據。SQL*Loader、Data Pump、外部表、Oracle Text、正則表達式都能提供這些功能。然而人們常常會需要在資料庫外做一些事情(或者,說得瑣碎些,可能您還沒有獲得必要的資料庫許可權)。
利用 Python 可以進行高水平的、有效的數據解析。而利用互聯網上免費提供的大量標準庫和眾多模塊可以處理數據邏輯,不必手動剖析位元組。
剛發過一個在地址欄的小hacker可以解除網頁屏蔽,最近學習python,寫了一個相當簡單的玩意,也可以做此事
- #-*- coding: utf-8 -*-
- """author: hujinpu"""
- """http://docs.python.org/lib/module-urllib.html"""
- import urllib
- urls = {'被屏蔽功能的網頁地址':'downloadtomycomputer.htm'}
- for url in urls:
- filename = urls[url]
- urllib.urlretrieve(url,filename)
- f = open(filename,'r')
- content = f.read()
- f.close()
- newfilename = "new_" + filename
- f = open(newfilename,'w')
- f.write( content + "<script>document.onselectstart = document.oncontextmenu = document.onmousedown = document.onkeydown = function(){return true;};</script>");
- f.close()
其中urls是一個字典,可以寫很多你要征服的url
Python的交互
在很多時候,你會想要讓你的程式與用戶(可能是你自己)交互。你會從用戶那裡得到輸入,然後列印一些結果。我們可以分別使用raw_input和input語句來完成這些功能。對於輸出,你也可以使用多種多樣的str(字元串)類。例如,你能夠使用rjust方法來得到一個按一定寬度右對齊的字元串。利用help(str)獲得更多詳情。
另一個常用的輸入/輸出類型是處理文件。創建、讀和寫文件的能力是許多程式所必需的
文件:
你可以通過創建一個file類的對象來打開一個文件,分別使用file類的read、readline或write方法來恰當地讀寫文件。對文件的讀寫能力依賴於你在打開文件時指定的模式。最後,當你完成對文件的操作的時候,你調用close方法來告訴Python我們完成了對文件的使用。
#!/usr/bin/python
#Tue Jan 8 21:25:42 CST 2013
poem='''\\
Programming is fun
When the work is done
If you wanna make your work also fun:
use Python!
'''
f=file('poem.txt','w')
f.write(poem)
f.close()
f=file('poem.txt')
while True:
line=f.readline()
if len(line) == 0:
break
print line,
f.close()
打開文件的模式可為讀(‘r’)、寫(‘w’)或追加(‘a’)。
write只能寫入字元串。
儲存器
Python提供了一個標準的模塊,稱為pickle。使用它你可以在一個文件中儲存任何Python對象,之後你又可以把它完整的取出來,這被稱為持久地儲存對象。
還有一個模塊cPickle,它的功能和pickle模塊完全相同,但是用C語言寫的所以比pickle快。
#!/usr/bin/python
#Wed Jan 9 17:40:54 CST 2013
import cPickle as p
shoplistfile='shoplist.data'
shoplist=['apple','egg','banana']
f=file(shoplistfile,'w')
p.dump(shoplist,f)
f.close
f=file(shoplistfile)
storedlist=p.load(f)
print storedlist
使用import.. as語法。以便我們可以使用跟段的模塊名稱。
Python也有異常的處理。用try..except進行異常處理。我們把通常的語句放在try塊中,而把我們的錯誤處理語句放在except塊中。
我們把所有可能引發錯誤的語句放在try塊中,然後在except從句/塊中處理所有的錯誤和異常。except從句可以專門處理單一的錯誤或異常,或者一組包括在圓括弧內的錯誤/異常。如果沒有給出錯誤或異常的名稱,它會處理 所有的 錯誤和異常。對於每個try從句,至少都有一個相關聯的except從句。
try..finally
假如你在讀一個文件的時候,希望在無論異常發生與否的情況下都關閉文件,該怎麼做呢?這可以使用finally塊來完成。註意,在一個try塊下,你可以同時使用except從句和finally塊。如果你要同時使用它們的話,需要把一個嵌入另外一個。
在程式中運行time.sleep(2)進行程式休息。需要加在time模塊。
Python標準庫是隨Python附帶安裝的,它包含大量機器有用的模塊。