python 教程 第二十二章、 其它应用
第二十二章、 其它应用
1) Web服务
##代码 s 000063.SZ
##开盘 o 26.60
##最高 h 27.05
##最低 g 26.52
##最新 l1 26.66
##涨跌 c1 -0.04
##涨幅 p2 -0.15%
##总手 v 9190865
##日期 d1 6/15/2011
##时间 t1 3:00am
#!/usr/bin/env python
from time import ctime
from urllib import urlopen
import re
ticks = ('000063.sz', '600001.ss', '010110.ss', '000005.sz',
'300003.SZ', '000100.sz', '600519.ss', '900950.SS')
URL = 'http://quote.yahoo.com/d/quotes.csv?s=%s&f=sohgl1v'
print 'Prices quoted as of:', ctime()
print u'\n代码'.rjust(1), u'开盘'.rjust(6), u'最高'.rjust(4), \
u'最低'.rjust(4), u'现价'.rjust(4), u'总手'.rjust(7)
u = urlopen(URL % ','.join(ticks))
for row in u:
name, openp, high, low, close, volume = row.split(',')
print (re.search('[0-9]{6}', name).group()).rjust(6), \
(re.search('\d+\.\d{2}|N/A', openp).group()).rjust(6), \
(re.search('\d+\.\d{2}|N/A', high).group()).rjust(6), \
(re.search('\d+\.\d{2}|N/A', low).group()).rjust(6), \
(re.search('\d+\.\d{2}|N/A', close).group()).rjust(6), \
(re.search('[0-9]+|N/A', volume).group()).rjust(9)
u.close()
2) COM编程
安装pywin32(pywin32-216.win32-py2.7.exe)
下载http://sourceforge.net/projects/pywin32/files/pywin32/
#!/usr/bin/env python
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32
warn = lambda app: showwarning(app, 'Exit?')
RANGE = range(3, 8)
def word():
app = 'Word'
word = win32.gencache.EnsureDispatch('%s.Application' % app)
doc = word.Documents.Add()
word.Visible = True
sleep(1)
rng = doc.Range(0,0)
rng.InsertAfter('Python-to-%s Test\r\n\r\n' % app)
sleep(1)
for i in RANGE:
rng.InsertAfter('Line %d\r\n' % i)
sleep(1)
rng.InsertAfter("\r\nTh-th-th-that's all folks!\r\n")
warn(app)
doc.Close(False)
word.Application.Quit()
if __name__=='__main__':
Tk().withdraw()
word()
#!/usr/bin/env python (estock.pyw)
from Tkinter import Tk
from time import sleep, ctime
from tkMessageBox import showwarning
from urllib import urlopen
import win32com.client as win32
warn = lambda app: showwarning(app, 'Exit?')
RANGE = range(3, 8)
TICKS = ('YHOO', 'GOOG', 'EBAY', 'AMZN')
COLS = ('TICKER', 'PRICE', 'CHG', '%AGE')
URL = 'http://quote.yahoo.com/d/quotes.csv?s=%s&f=sl1c1p2'
def excel():
app = 'Excel'
xl = win32.gencache.EnsureDispatch('%s.Application' % app)
ss = xl.Workbooks.Add()
sh = ss.ActiveSheet
xl.Visible = True
sleep(1)
sh.Cells(1, 1).Value = 'Python-to-%s Stock Quote Demo' % app
sleep(1)
sh.Cells(3, 1).Value = 'Prices quoted as of: %s' % ctime()
sleep(1)
for i in range(4):
sh.Cells(5, i+1).Value = COLS[i]
sleep(1)
sh.Range(sh.Cells(5, 1), sh.Cells(5, 4)).Font.Bold = True
sleep(1)
row = 6
u = urlopen(URL % ','.join(TICKS))
for data in u:
tick, price, chg, per = data.split(',')
sh.Cells(row, 1).Value = eval(tick)
sh.Cells(row, 2).Value = '%.2f' % round(float(price), 2)
sh.Cells(row, 3).Value = chg
sh.Cells(row, 4).Value = eval(per.rstrip())
row += 1
sleep(1)
u.close()
warn(app)
ss.Close(False)
xl.Application.Quit()
if __name__=='__main__':
Tk().withdraw()
excel()
#!/usr/bin/env python
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32
warn = lambda app: showwarning(app, 'Exit?')
RANGE = range(3, 8)
def ppoint():
app = 'PowerPoint'
ppoint = win32.gencache.EnsureDispatch('%s.Application' % app)
pres = ppoint.Presentations.Add()
ppoint.Visible = True
s1 = pres.Slides.Add(1, win32.constants.ppLayoutText)
sleep(1)
s1a = s1.Shapes[0].TextFrame.TextRange
s1a.Text = 'Python-to-%s Demo' % app
sleep(1)
s1b = s1.Shapes[1].TextFrame.TextRange
for i in RANGE:
s1b.InsertAfter("Line %d\r\n" % i)
sleep(1)
s1b.InsertAfter("\r\nTh-th-th-that's all folks!")
warn(app)
pres.Close()
ppoint.Quit()
if __name__=='__main__':
Tk().withdraw()
ppoint()
#!/usr/bin/env python
from Tkinter import Tk
#from time import sleep # SUPERFLUOUS
from tkMessageBox import showwarning
import win32com.client as win32
warn = lambda app: showwarning(app, 'Exit?')
RANGE = range(3, 8)
def outlook():
app = 'Outlook'
olook = win32.gencache.EnsureDispatch('%s.Application' % app)
mail = olook.CreateItem(win32.constants.olMailItem)
recip = mail.Recipients.Add('hello@msn.com')
subj = mail.Subject = 'Python-to-%s Demo' % app
body = ["Line %d" % i for i in RANGE]
body.insert(0, '%s\r\n' % subj)
body.append("\r\nTh-th-th-that's all folks!")
mail.Body = '\r\n'.join(body)
mail.Send()
ns = olook.GetNamespace("MAPI")
obox = ns.GetDefaultFolder(win32.constants.olFolderOutbox)
obox.Display()
obox.Items.Item(1).Display()
warn(app)
olook.Quit()
olook = outlook
if __name__=='__main__':
Tk().withdraw()
outlook()
python 教程 第二十二章、 其它应用的更多相关文章
- Flask 教程 第二十二章:后台作业
本文翻译自The Flask Mega-Tutorial Part XXII: Background Jobs 这是Flask Mega-Tutorial系列的第二十二部分,我将告诉你如何创建独立于W ...
- python 教程 第十二章、 标准库
第十二章. 标准库 See Python Manuals ? The Python Standard Library ? 1) sys模块 import sys if len(sys.argv) ...
- C#图解教程 第二十二章 异常
异常 什么是异常try语句 处理异常 异常类catch 子句使用特定catch子句的示例catch子句段finally块为异常寻找处理程序更进一步搜索 一般法则搜索调用栈的示例 抛出异常不带异常对象的 ...
- 进击的Python【第二十二章】
day22 知识点概要 - Session - CSRF - Model操作 - Form验证(ModelForm) - 中间件 - 缓存 - 信号 内容详细: 1. Session 基于Cookie ...
- 第二十二章 Django会话与表单验证
第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...
- 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记
第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...
- Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- “全栈2019”Java多线程第二十二章:饥饿线程(Starvation)详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java异常第二十二章:try-with-resources语句详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
随机推荐
- POJ 1562 Oil Deposits (HDU 1241 ZOJ 1562) DFS
现在,又可以和她没心没肺的开着玩笑,感觉真好. 思念,是一种后知后觉的痛. 她说,今后做好朋友吧,说这句话的时候都没感觉.. 我想我该恨我自己,肆无忌惮的把她带进我的梦,当成了梦的主角. 梦醒之后总是 ...
- android开发音乐播放器--Genres和Art album的获取
最近在做一个项目,其中涉及到音乐播放器.当用到Genres和Art album时花费了一些时间才搞定,今天把方法草草列出,以供自己以后忘记时查看,也希望可以帮助碰到同样问题的道友!! 一.Genres ...
- js课程 1-5 js如何测试变量的数据类型
js课程 1-5 js如何测试变量的数据类型 一.总结 一句话总结:用typeof()方法. 1.js如何判断变量的数据类型? 用typeof()方法. 13 v=10; 14 15 if(typeo ...
- [GraphQL] Write a GraphQL Mutation
In order to change the data that we can query for in a GraphQL Schema, we have to define what is cal ...
- vs 2013 常用快捷键及常见问题的解决
1. 代码编辑 关闭当前文档:ctrl + F4 打开光标所在位置的文档:ctrl + G(shift + g) 返回上次编辑的位置:ctrl + -(键盘数字键 0 后的那个按键) 移动光标所在的行 ...
- js进阶 11-1 jquery中的页面内容操作的三个方法
jquery中的页面内容操作的三个方法 一.总结 一句话总结:记三个方法即可.text,html,val.因为这里是方法,所以设置值的是后面方法的参数. 1.jquery中的页面内容操作的三个方法? ...
- [Ramda] R.project -- Select a Subset of Properties from a Collection of Objects in Ramda
In this lesson we'll take an array of objects and map it to a new array where each object is a subse ...
- [SVG] Optimize SVGs for Better Performance using svgo
Just like a bitmap image, you can compress an SVG by removing various pieces of code that aren’t nec ...
- erlang 游戏服务器开发
http://blog.csdn.net/slmeng2002/article/details/5532771 最近关注erlang游戏服务器开发 erlang大牛写的游戏服务器值得参考 介绍本文以 ...
- prettytensor 的使用
prettytensor 顾名思义,对原始的 tensorflow 下的 tensor 进行封装(prettytensor 以 tensorflow 为基础,二者搭配使用),使其成为一个更为接口友好的 ...