Python统计多个Powerpoint文件中幻灯片总数量

来源:互联网 发布:傻瓜app编程软件 编辑:程序博客网 时间:2024/05/16 15:52

晚上吃饭时突然想知道自己做了多少页《Python程序设计》系列教材的配套PPT,于是就有了下面的代码,这套PPT综合了《Python程序设计基础》(ISBN:9787302410584)、《Python程序设计(第2版)》(ISBN:9787302436515)和《Python可以这样学》(ISBN:9787302456469)以及将要出版的《Python程序设计开发宝典》4本书的内容,部分内容比书上详细,有的地方不如书上详细,主要是上课用,几本书重点介绍Python 3.4.x、3.5.x、3.6.x的语法和应用,全套课件均已免费分享。

import os
import os.path
import win32com
import win32com.client


total = 0


def pptCount(path):
    global total
    for subPath in os.listdir(path):
        subPath = os.path.join(path, subPath)
        if os.path.isdir(subPath):
            pptCount(subPath)
        elif subPath.endswith('.ppt'):
            print(subPath)
            powerpoint = win32com.client.Dispatch('PowerPoint.Application')
            powerpoint.Visible = 1
            ppt = powerpoint.Presentations.Open(subPath)
            win32com.client.gencache.EnsureDispatch('PowerPoint.Application')
            total += ppt.Slides.Count
            powerpoint.Quit()


pptCount('F:\\教学课件\\Python程序设计(第二版)')
print(total)


运行结果显示:

pptx肿么办?

首先:

pip install python-pptx

然后:

>>> import pptx
>>> p = pptx.Presentation('f:\\1.pptx')
>>> len(p.slides)
3

另外,关于昨天发的文章再补充一下,原文参见Python计算序列中数字最大差值(美团2016校招笔试题)

昨天发文之后立刻有上海交大李老师和读者朋友zhouyonghaha指出算法效率太低,其实一次循环就可以,开始我还不太明白,想了一下果然如此,于是有了下面的高效代码,算作一个补充:

from randomimport randrange


def maxDifference2(lst):
    diff = -float('inf')    
    minCurrent = lst[0]    
    for value in lst[1:]:
        if value < minCurrent:
            minCurrent = value
        else:
            t = value-minCurrent
            if t > diff:
                diff = t
                result = (minCurrent, value)
    return result


for _ in range(10):
    print('='*20)
    lst = [randrange(1,100) for _ in range(20)]
    print(lst)
    print(maxDifference2(lst))


运行结果显示:

====================
[22, 20, 32, 66, 22, 74, 74, 31, 88, 94, 18, 35, 47, 75, 14, 83, 44, 57, 53, 95]
(14, 95)
====================
[60, 15, 46, 36, 93, 45, 92, 56, 36, 57, 87, 80, 47, 4, 72, 18, 79, 32, 35, 1]
(15, 93)
====================
[4, 40, 92, 99, 87, 14, 52, 55, 35, 52, 1, 53, 50, 46, 39, 53, 29, 8, 45, 32]
(4, 99)
====================
[41, 53, 52, 47, 93, 67, 18, 38, 77, 12, 87, 42, 43, 2, 16, 32, 20, 54, 33, 72]
(12, 87)
====================
[68, 41, 29, 33, 23, 81, 5, 41, 17, 54, 69, 29, 90, 10, 57, 88, 14, 30, 69, 81]
(5, 90)
====================
[1, 46, 27, 47, 68, 44, 89, 15, 2, 10, 32, 90, 45, 79, 33, 99, 21, 61, 79, 21]
(1, 99)
====================
[64, 58, 97, 65, 15, 13, 35, 86, 25, 58, 26, 51, 65, 14, 6, 98, 90, 25, 98, 42]
(6, 98)
====================
[55, 14, 18, 57, 40, 27, 55, 93, 21, 16, 48, 32, 93, 69, 50, 13, 89, 98, 59, 40]
(13, 98)
====================
[11, 19, 17, 96, 21, 25, 74, 71, 78, 8, 49, 58, 57, 36, 72, 56, 83, 93, 41, 65]
(11, 96)
====================
[48, 95, 56, 44, 42, 40, 83, 86, 82, 50, 73, 88, 98, 52, 28, 60, 33, 17, 68, 59]
(40, 98)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信漂流瓶被投诉收不到回复怎么办 电视的屏幕出现三条黑线怎么办 付了定金的房子不想要了怎么办 顾客刚买了东西就退怎么办 飞机票买了但是没有报团怎么办 日本寄东西回来深圳海关扣了怎么办 xp框架安装模块后无限重启怎么办 手机百度云下载的文件不见了怎么办 百度云手机号换了文件不见了怎么办 好劵app提现密码忘了要怎么办 微信上买的衣服不给退货怎么办 在微信上买的衣服不给退货怎么办 贴贴纸的地方出现色差了怎么办 贴在玻璃上的贴纸撕掉后有胶怎么办 魅族手机部分时间上划失效怎么办 别人电脑上c盘文件无权访问怎么办 网络已连接但上不了网怎么办 asp复选框选中的有重复值怎么办 邮件在邮递中出现损坏怎么办呢? 爱彩彩票资金密码忘记了怎么办 注册彩票网站忘了资金密码怎么办 电车电瓶加水后电压变低怎么办 电动车电瓶四块电池坏了一块怎么办 把小孩的玩具修坏了怎么办 电动车插头太紧了插不到底怎么办 宜家沙发不能更换布套怎么办 苹果官网买的无线充坏了怎么办 苹果官网上买的耳机坏了怎么办 led灯开关关掉了闪烁是怎么办 我朋友借的网贷光给我打电话怎么办 电脑上的文件变成了图片查看怎么办 外卖店打印机纸卡住打不开了怎么办 微信撤回图片留下一堆代码怎么办 拼多多砍价免费拿砍不到0元怎么办 一岁三个月宝宝老足拉肚子怎么办丶 想打好关系送礼发红包不敢收怎么办 我在相亲市场太受欢迎了怎么办小说 有人报警说我诈骗警察说立案怎么办 微信账号长时间未登录不想要怎么办 手机号注销了百度云登录不了怎么办 申请百度云账号的手机不用了怎么办