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异 ...
随机推荐
- Python 细节与基础拾遗
locals():当前环境下的全部局部变量,字典(dict)类型,所有的 key 均为字符串类型: if 'sess' in locals() and sess is not None: print( ...
- 使用Perl分割文件
使用Perl分割文件 特性 使用换行作为分界 忽略注释行# 分割存入新指定的文件中 待分割的文件test.lst wwdg/prescaler syscfg/test1 syscfg/test2 ua ...
- Android多线程研究(9)——线程锁Lock
在前面我们在解决线程同步问题的时候使用了synchronized关键字,今天我们来看看Java 5.0以后提供的线程锁Lock. Lock接口的实现类提供了比使用synchronized关键字更加灵活 ...
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
今天,重新弄我的个人云主机的环境,准备运营自己用Java写的个人官网等网站. 服务器环境:阿里云CentOS 6.4位 包括以下脚本在内的绝大部分命令和脚本,都是我亲自执行过,靠谱的. 完整的&quo ...
- protobuf入门教程
1.简介和安装 2.消息类型 3.proto3 与 proto2 的区别 4.常用序列化/反序列化接口 5.repeated限定修饰符 6.枚举(enum).包(package) 7.导入定义(imp ...
- 【codeforces 754B】 Ilya and tic-tac-toe game
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【t062】最厉害的机器人
Time Limit: 1 second Memory Limit: 128 MB [问题描述] [背景] Wind设计了很多机器人.但是它们都认为自己是最强的,于是,一场比赛开始了~ [问题描述] ...
- NOI模拟 颜色 - 带修莫队/树套树
题意: 一个颜色序列,\(a_1, a_2, ...a_i\)表示第i个的颜色,给出每种颜色的美丽度\(w_i\),定义一段颜色的美丽值为该段颜色的美丽值之和(重复的只计算一次),每次都会修改某个位置 ...
- Silverlight三维透视+倒影效果
原文:Silverlight三维透视+倒影效果 知识概要: 1.使用2D内容创建3D体验,了解图像的PlaneProjection属性,具体内容读者自己查看文档. 2.Silverlight图形图形的 ...
- 01_Git的安装和简单使用(命令行模式+图形化模式)
刚开始用git的小白适用,参考链接:http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天 ...