第二十二章、 其它应用
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 教程 第二十二章、 其它应用的更多相关文章

  1. Flask 教程 第二十二章:后台作业

    本文翻译自The Flask Mega-Tutorial Part XXII: Background Jobs 这是Flask Mega-Tutorial系列的第二十二部分,我将告诉你如何创建独立于W ...

  2. python 教程 第十二章、 标准库

    第十二章. 标准库 See Python Manuals ? The Python Standard Library ? 1)    sys模块 import sys if len(sys.argv) ...

  3. C#图解教程 第二十二章 异常

    异常 什么是异常try语句 处理异常 异常类catch 子句使用特定catch子句的示例catch子句段finally块为异常寻找处理程序更进一步搜索 一般法则搜索调用栈的示例 抛出异常不带异常对象的 ...

  4. 进击的Python【第二十二章】

    day22 知识点概要 - Session - CSRF - Model操作 - Form验证(ModelForm) - 中间件 - 缓存 - 信号 内容详细: 1. Session 基于Cookie ...

  5. 第二十二章 Django会话与表单验证

    第二十二章 Django会话与表单验证 第一课 模板回顾 1.基本操作 def func(req): return render(req,'index.html',{'val':[1,2,3...]} ...

  6. 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记

    第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...

  7. Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  8. “全栈2019”Java多线程第二十二章:饥饿线程(Starvation)详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  9. “全栈2019”Java异常第二十二章:try-with-resources语句详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

随机推荐

  1. Satisfying memory ordering requirements between partial reads and non-snoop accesses

    A method and apparatus for preserving memory ordering in a cache coherent link based interconnect in ...

  2. php面试题四

    php面试题四 一.总结 二.php面试题四 01. 输出为 Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:   A.$_S ...

  3. 数据类型总结——Boolean类型(布尔类型)

    相关文章 简书原文:https://www.jianshu.com/p/e5c75d4be636 数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015. ...

  4. android.app.Dialog(23)里window的那些事(坑)

    不要使用theme去配置Dialog的gravity 因为如今手机的尺寸比較大(相对于智能机開始的3.5in.4.0in),而Dialog默认都是显示在屏幕中心的位置,用户触摸起来多不便. 所以大多数 ...

  5. php实现构建乘积数组(算法:替换)(语法错误:分号和$符号)

    php实现构建乘积数组(算法:替换)(语法错误:分号和$符号) 一.总结 1.算法:替换 2.语法错误:分号和$符号 二.php实现构建乘积数组 题目描述: 给定一个数组A[0,1,...,n-1], ...

  6. 广播(broadcast)、电视与电视网络

    1. 闭路电视与电视 Closed Circuit Television (CCTV) 一种图像通信系统.其信号从源点只传给预先安排好的与源点相通的特定电视机.广泛用于大量不同类型的监视工作.教育.电 ...

  7. CISCO - 查找命令行

    http://www.cisco.com/c/en/us/support/web/tools/help/command_search_best_practices.html Support Best ...

  8. 教你如何利用php.exe运行php文件

    教你如何利用php.exe运行php文件 一.总结 一句话总结:就是使用的php.exe,和java中的javac一样,都是有exe,然后有了对应命令,比如php.exe,然后就可以用php命令. 1 ...

  9. 百度echarts可以做什么

    百度echarts可以做什么 一.总结 一句话总结:可视化做的很好,各种图都有.而且支持动态数据. 二.百度eCharts体验 前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Hig ...

  10. 【u206】最大赢家

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] Nic和Susan在玩一个有趣的游戏:在游戏开始前,他们先约定一个正整数n,同时令m=1.游戏过程中, ...