数据缩进貌似已经被机器忽略了。。。
- 下面的例子都是在windows下完成的。
- 1,读取文本文件的每行(假定C:根目录下有一个test.txt文件)。
- f = open("c:/test.txt")
- while(True):
- str = f.readline()
- if str == "" : break
- #TODO:your code here
- print str
- f.close()
- 2,使用glob模块进行查询指定的excel文件,并使用第三方模块xlrd(需要安装下载http://beauty.run-to.com/TechDocs/Product/xlrd-0.5.2.tgz,先解压,安装时,使用命令行到xlrd解压目录内,使用命令setup.py install进行安装。以下同)解析excel文档。(注:py文件中要是有汉字,比如注释或字符串,那么在文件的头部加上#-*- encoding:utf-8 -*-标志,就可以识别中文集了。不过需要注意的是,使用notepad在英文系统下保存时默认是ansi,所以应该使用notepad的另存为,然后encoding选择utf-8而不是ansi,然后类型选择所有类型,保存成py文件,否则就算加了标志,显示的还是乱码,下同)。
- #-*- encoding:utf-8 -*-
- import xlrd
- import types
- import time
- import os
- import glob
- def Calc(excelname) :
- #open excel
- book = xlrd.open_workbook(excelname)
- #read first sheet
- sh = book.sheet_by_index(0)
- #read data from excel at first column
- print excelname + ":"
- for rx in range(sh.nrows) :
- d = sh.cell_value(rowx=rx, colx=0)
- print d
- if __name__ == "__main__" :
- #########
- #xl*.xls匹配excel文件,并且该文件的文件名头两个字为xl
- for excelname in glob.glob( 'xl*.xls' ) :
- Calc(excelname)
- 3,xml的解析。
- #!/usr/bin/python
- #-*- encoding:utf-8 -*-
- from xml.sax import make_parser
- from xml.sax import ContentHandler
- import string
- class MyHandler(ContentHandler):
- def startElement(self,name,attrs): #遇到元素开头时执行,如<para>
- self.name = name
- self.content = ""
- def endElement(self,name): #遇到元素尾时执行,如</para>
- print self.name + "=" + self.content
- def characters(self,content): #获取元素内容
- self.content = content
- ch = MyHandler() #生成ContentHandler的实例
- saxparser = make_parser() #创建sax处理器
- saxparser.setContentHandler(ch) #关联
- saxparser.parse('test.xml')
- 4,获取某个网站的网页内容(你可以通过这个例子写出抓取网络信息的程序)。
- 以下是到sina网站上获取当天的浦发银行的股票信息的代码。
- import urllib
- pg = urllib.urlopen('http://hq.sinajs.cn/list=sh600000')
- cont = pg.read()
- print cont
- 5,正则表达式的使用。
- import re
- p = re.compile('[a-z]+\d{3}')
- str = "fasfnnhzc123aff;^%^Fsdfg sd"
- m = p.match(str)
- print m.group()
- 6,RPC远程过程调用的例子(分为服务端和客户端代码)。
- 这是服务端代码:
- server.py:
- import SimpleXMLRPCServer
- #定义自己的CMS类
- class MyCMS:
- def getVersion(self):#向外公开版本的方法
- return "Powerd By Python 0.1a"
- cms = MyCMS()
- server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))
- server.register_instance(cms)
- print "Listening on port 8888"
- server.serve_forever()#服务器执行,并监听8888端口
- 这是客户端代码:
- client.py:
- import xmlrpclib
- server = xmlrpclib.ServerProxy("http://localhost:8888")
- version = server.getVersion()
- print "version:"+version
- 创建文件夹以及判断文件是否存在:
- import os
- #创建test目录,注意不可嵌套创建,也就是要是C:/test目录
- #不存在则不能创建子目录c:/test/test。
- os.mkdir('c:/test')
- dirFlag = os.path.exists('c:/test')
- fileFlag = os.path.exists('c:/test/test.txt')
- 使用PIL图像处理模块:
- import Image, ImageDraw, ImageFont
- import ImageFilter
- import ImageEnhance
- from math import atan, degrees
- #显示jpg(假定当前目录存在一个叫做Blue hills.jpg的图片)
- im = Image.open("Blue hills.jpg")
- im.show()
- #缩小一半
- nim = im.resize((im.size[0] / 2,im.size[1] / 2) ,Image.BILINEAR)
- #如果要保存的话,下面注释打开即可
- #nim.save("Blue hills Resize 2.jpg")
- nim.show()
- #旋转45度
- nim2 = nim.rotate( 45, Image.BILINEAR )
- #nim2.save( "Blue hills rotated.jpg" )
- nim2.show()
- #滤镜
- nim3 = im
- for i in range(2): nim3 = nim3.filter( ImageFilter.BLUR )
- nim3.show()
- #加logo
- text = "Hello Logo!"
- img = im
- FONT = "c:/windows/fonts/verdana.ttf"
- watermark = Image.new("RGBA", (im.size[0], im.size[1]))
- draw = ImageDraw.ImageDraw(watermark, "RGBA")
- size = 0
- while True:
- size += 1
- nextfont = ImageFont.truetype(FONT, size)
- nexttextwidth, nexttextheight = nextfont.getsize(text)
- if nexttextwidth+nexttextheight/3 > watermark.size[0]:
- break
- font = nextfont
- textwidth, textheight = nexttextwidth, nexttextheight
- draw.setfont(font)
- draw.ink = 255 + 255*255 + 255*255*255
- draw.text(((watermark.size[0]-textwidth)/2,(watermark.size[1]-textheight)/2), text)
- watermark = watermark.rotate(degrees(atan(float(img.size[1])/img.size[0])),Image.BICUBIC)
- mask = watermark.convert("L").point(lambda x: min(x, 55))
- watermark.putalpha(mask)
- img.paste(watermark, None, watermark)
- img.show()
- 简单使用wxpython的一个例子:
- import wx
- class MyFrame(wx.Frame):
- def __init__(self, parent, title):
- wx.Frame.__init__(self, parent, -1, title,
- pos=(150, 150), size=(350, 200))
- # 使用面板放置其他控件
- panel = wx.Panel(self)
- # 加了一个标签和按钮
- text = wx.StaticText(panel, -1, "Hello World!")
- text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
- text.SetSize(text.GetBestSize())
- btn = wx.Button(panel, -1, "Close")
- # 绑定按钮事件
- self.Bind(wx.EVT_BUTTON, self.OnTimeToClose, btn)
- #设置布局用的sizer
- sizer = wx.BoxSizer(wx.VERTICAL)
- sizer.Add(text, 0, wx.ALL, 10)
- sizer.Add(btn, 0, wx.ALL, 10)
- panel.SetSizer(sizer)
- panel.Layout()
- def OnTimeToClose(self, evt):
- print "See ya later!"
- self.Close()
- class MyApp(wx.App):
- def OnInit(self):
- frame = MyFrame(None, "Simple wxPython App")
- self.SetTopWindow(frame)
- frame.Show(True)
- return True
- app = MyApp(redirect=True)
- app.MainLoop()
