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

晚上吃饭时突然想知道自己做了多少页《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 random import 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)

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2017-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生

如何提高代码质量?

好的程序员从来不靠格子衫或者颜值吃饭,就像你家 C 罗明明可以靠脸,却非要用不断精进的身体和技术迷倒你。

1230
来自专栏微信公众号:Java团长

Java项目经验——程序员成长的关键

Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的...

1220
来自专栏做全栈攻城狮

程序员你该学学如何设计PPT了,PPT设计原则你该知道。

大量的汇报及介绍工作,都离不开一个辅助工具-PPT。作为程序员,你更该学学PPT设计了。

1053
来自专栏Java帮帮-微信公众号-技术文章全总结

项目经验-你的Java生存之道

项目经验-你的Java生存之道 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握...

5127
来自专栏Java编程

Java 征途:行者的地图

前段时间应因缘梳理了下自己的 Java知识体系, 成文一篇望能帮到即将走进或正在 Java 世界跋涉的程序员们。

9950
来自专栏微信公众号:Java团长

Java学习路线

学过一段时间的同学一定会觉得Java学习最头疼的不是语法结构的繁杂,而是Java本身体系结构的庞大。以至于自己不知道接下去该学什么,或者什么样的知识才会对后续的...

2565
来自专栏PHP在线

程序人生的寂静欢喜

原文出处: caojueming 标题起得太大咯,是在故作老成么? “程序人生的寂静欢喜”——怎么看都感觉像是某位已故计算机大师的墓志铭,可却偏偏被一个菜...

2863
来自专栏Java编程

成为优秀Java程序员的10大技巧

Java程序员有许多应遵循的守则或最佳实践方式。本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果。

7831
来自专栏牛客网

三七互娱秋招提前批 java服务端

    我是在6月5号参加了三七互娱的秋招的web后端线上笔试,第二天又参加了java服务端的线上笔试,之后去三七大楼参加open day,然后面试时一面,二面...

1251
来自专栏包子铺里聊IT

跟花和尚学系统设计:明星公司之Netflix(中篇)

谁是花和尚? 花和尚是一个定居西雅图的程序员,拥有多年系统设计和开发经验。喜欢研究和总结System Design, 并传授给大家。花和尚在MITBBS一篇 "...

4176

扫码关注云+社区

领取腾讯云代金券