Python统计PDF文件每页上的每封电子邮件
我正试图计算这个pdf文件中有@twitter或@facebook的每一个字符串,有1537页。我初始化了一个计数器,每当页面找到@twitter或@facebook时,计数器都会关闭,但计数器只是计算页面的数量,而不是包含facebook或twitter的电子邮件的数量。我正在使用Python3并导入pdftotext来读取文件。 这是密码Python统计PDF文件每页上的每封电子邮件,python,python-3.x,pdf,Python,Python 3.x,Pdf,我正试图计算这个pdf文件中有@twitter或@facebook的每一个字符串,有1537页。我初始化了一个计数器,每当页面找到@twitter或@facebook时,计数器都会关闭,但计数器只是计算页面的数量,而不是包含facebook或twitter的电子邮件的数量。我正在使用Python3并导入pdftotext来读取文件。 这是密码 import pdftotext count = 0 # 1 read the pdf with open('Users.pdf', 'rb') as f
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
这是文件的页数,建议您使用正则表达式匹配来实现所需操作
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)
要检查并尝试您的正则表达式模式,我建议。如您所建议的,应该使用正则表达式匹配来实现您想要做的事情
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)
要检查并尝试您的正则表达式模式,我建议。嘿,伙计,您确定
页面
内循环保存了PDF页面的内容吗?在尝试计算要查找的字符串之前,可能需要调用另一个方法。您的代码正按照您的指示执行。对于每个页面,无论您要查找的字符串出现多少次,您都会将计数增加一次。似乎正则表达式匹配会更好;在这里查看:嘿,伙计,你确定反循环中的页面
保存了PDF页面的内容吗?在尝试计算要查找的字符串之前,可能需要调用另一个方法。您的代码正按照您的指示执行。对于每个页面,无论您要查找的字符串出现多少次,您都会将计数增加一次。似乎正则表达式匹配会更好;在这里查看: