进行数据解析的理由不计其数,相关的工具和技巧也同样如此。但是,当您需要用这些数据做一些新的事情时,即使有“合适的”工具可能也是不够的。这一担心对于异类数据源的集成同样存在。用来做这项工作的合适工具迟早应该是一种编程语言。
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附带安装的,它包含大量机器有用的模块。
Atas ialah kandungan terperinci 利用Python进行高水平的数据解析实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!