python - Python计算PDF文件每一页上的每封电子邮件
问题描述
我正在尝试计算此 pdf 文件中包含 @twitter 或 @facebook 的每个字符串,共有 1537 页。我初始化了一个计数器,每次页面找到@twitter 或@facebook 时都会关闭,但计数器只是计算页面数量,而不是包含 facebook 或 twitter 的电子邮件数量。我正在使用 python 3 并导入 pdftotext 来读取文件。这是代码
import pdftotext
count = 0
# 1 read the pdf
with open('Users.pdf', 'rb') as f:
pdf = pdftotext.PDF(f)
# loop thru pages
for page in pdf:
if '@facebook' in page or '@twitter' in page:
count += 1
print(count)
输出:
1537
这是文件的页数
解决方案
正如manny所建议的,您应该使用正则表达式匹配来实现您想要做的事情。
import pdftotext
import re
count = 0
# 1 read the pdf
with open('Users.pdf', 'rb') as f:
pdf = pdftotext.PDF(f)
# regex pattern
pattern = '@facebook|@twitter'
# loop thru pages
for page in pdf:
count += len(re.findall(pattern, page))
print(count)
要检查并尝试您的正则表达式模式,我推荐Regex101。
推荐阅读
- firebase - 有没有办法删除 Firebase 云消息传递 (FCM) 主题?
- sql - 将多个查询与 4 个连接结合起来?
- javascript - 如何使用 puppeteer 获取鼠标位置
- javascript - characters.map 不是函数
- javascript - 如何在点击时显示 0:00 而不是 NaN:NaN
- ios - 如何在 Swift 中屏蔽 UIStackView?
- swift - UIStackView() 不显示
- java - 如何单个函数调用多个活动?
- android - 为什么我的编辑文本启用时没有出现闪烁的光标?
- c++ - Codeforces 中的左撇子、右撇子和 Ambidexters 问题给了我一个错误