|
下面的例子都是在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() |
No comments:
Post a Comment