目录
- Ⅰ Python基础
- 1. Python入门
- 2. 流程控制
- 3. Python函数使用
- 4. Python中的列表
- 5. 字典
- 6. Python中的字符串
- 7. 异常
- Ⅱ Python 进阶
- 3. 模块
- Ⅳ Python日常工具
- 4. 用 Python 处理电子表格
- 1. DOCX 文档解析与处理
- 2. 用Python进行图像处理
- 3. 使用Python处理PDF文档
- 4. Web信息解析与处理
- 5. Web信息生成与发布
- 6. 自动化Email处理
- Ⅴ 专题
- 1. Pillow图像处理
- 2. OpenCV处理
- 3. 数据库自动化报表处理:使用SQLite
- 4. Python和Web
- 5. Web信息处理
- 6. Web模板引擎
- 7. XML 处理
- Ⅵ 图像处理:使用scikit-image
- 1. skimage数字图像处理基础
- 2. skimage数字图像处理中级
- 3. skimage数字图像处理高级
- Ⅶ 科学计算
- 1. NumPy数值计算
- 2. SciPy科学类库
- 3. SymPy符号运算
- 4. Matplotlib绘图
- 5. Pandas 第一部分
- 6. Pandas 第二部分
- 6.1. Pandas排序
- 6.2. Pandas字符串和文本数据
- lower()函数示例
- upper()函数示例
- len()函数示例
- strip()函数示例
- split(pattern)函数示例
- cat(sep=pattern)函数示例
- get_dummies()函数示例
- contains()函数示例
- replace(a,b)函数示例
- repeat(value)函数示例
- count(pattern)函数示例
- startswith(pattern)函数示例
- endswith(pattern)函数示例
- find(pattern)函数示例
- findall(pattern)函数示例
- swapcase()函数示例
- islower()函数示例
- isupper()函数示例
- isnumeric()函数示例
- 6.3. Pandas选项和自定义
- 6.4. Pandas索引和选择数据
- 6.5. Pandas统计函数
- 6.6. Pandas窗口函数
- 6.7. Pandas聚合
- 6.8. Pandas缺失数据
- 6.9. Pandas分组(GroupBy)
- 6.10. Pandas合并/连接
- 6.11. Pandas级联
- 7. Pandas 第三部分
>>> from helper import info; info()
页面更新时间: 2020-07-05 07:30:08
操作系统/OS: Linux-4.19.0-9-amd64-x86_64-with-debian-10.4 ;Python: 3.7.3
5.6. 实践项目¶
作为实践,编程完成下列任务。
PDF 偏执狂¶
利用第9章的 os.walk()
函数编写一个脚本,
遍历文件夹中的所有PDF(包含子文件夹),用命令行
提供的口令对这些PDF加密。用原来的文件名加_encrypted.pdf
后缀,保存每个加密的PDF。在删除原来的文件之前,
尝试用一个程序读取并解密该文件,确保它被正确 的加密。
然后编写一个程序,找到文件夹中所有加密的PDF文件 (包括它的子文件夹),利用提供的口令,创建PDF的解密 拷贝。如果口令不对,程序应该打印一条消息, 并继续处理下一个PDF文件。
定制邀请函,保存为Word文档¶
假设你有一个客人名单的文本文件。这个guests.txt文件 每行有一个名字,像下面这样:
Prof. Plum
Miss Scarlet
Col. Mustard
A1 Sweigart
RoboCop
写一个程序,生成定制邀请函的Word文档,如图13-11所示。
图13-11 定制的邀请函脚本生成的Word文档
因为 python-docx
只能使用 Word 文档中已经存在的
样式,所以你必须先将这些样式添加到一个空白Word文件中, 然后用
python-docx
打开该文件。在生成的Word文档中,
每份邀请函应该占据一页,所以在每份邀请函的最后一段调用 add_break()
,添加分页符。这样,你只需要打开一份 Word文档,就能打印所有的邀请函。
你可以从 http://nostarch.com/automatestuff/ 下载示例guests.txt 文件。
暴力PDF口令破解程序¶
假定有一个加密的PDF文件,你忘记了口令,但记得它是一个 英语单词。尝试猜测遗忘的口令是很无聊的任务。作为替代, 你可以写一个程序,尝试用所有可能的英语单词来解密这个 PDF文件,直到找到有效的口令。这称为暴力口令攻击。从 http://nostarch.com/automatestuff/ 下载文本文件dictionary.txt。这个字典文件包含44000 多个英语单词,每个单词占一行。
利用第8章学过的文件读取技巧来读取这个文件,创建一个
单词字符串的列表。然后循环遍历这个列表中的每个单词, 将它传递给
decrypt
方法,如果这个方法返回整数0,
口令就是错的,程序应该继续尝试下一个口令。如果
decrypt
。返回1,程序就应该终止循环,打印出破解的
口令。你应该尝试每个单词的大小写形式(在我的笔记本上,
遍历来自字典文件的所有88000个大小写单词,只要几分钟
时间。这就是不应该使用简单英语单词作为口令的原因)。